@lightprotocol/stateless.js 0.23.0-beta.1 → 0.23.0-beta.3

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.
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("@solana/web3.js"),t=require("buffer"),r="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function o(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var n={},s={};class i{constructor(e,t){if(!Number.isInteger(e))throw new TypeError("span must be an integer");this.span=e,this.property=t}makeDestinationObject(){return{}}decode(e,t){throw new Error("Layout is abstract")}encode(e,t,r){throw new Error("Layout is abstract")}getSpan(e,t){if(0>this.span)throw new RangeError("indeterminate span");return this.span}replicate(e){const t=Object.create(this.constructor.prototype);return Object.assign(t,this),t.property=e,t}fromArray(e){}}function a(e,t){return t.property?e+"["+t.property+"]":e}s.Layout=i,s.nameWithProperty=a,s.bindConstructorLayout=function(e,t){if("function"!=typeof e)throw new TypeError("Class must be constructor");if(e.hasOwnProperty("layout_"))throw new Error("Class is already bound to a layout");if(!(t&&t instanceof i))throw new TypeError("layout must be a Layout");if(t.hasOwnProperty("boundConstructor_"))throw new Error("layout is already bound to a constructor");e.layout_=t,t.boundConstructor_=e,t.makeDestinationObject=()=>new e,Object.defineProperty(e.prototype,"encode",{value:function(e,r){return t.encode(this,e,r)},writable:1}),Object.defineProperty(e,"decode",{value:function(e,r){return t.decode(e,r)},writable:1})};class u extends i{isCount(){throw new Error("ExternalLayout is abstract")}}class c extends u{constructor(e,t){if(void 0===e&&(e=1),!Number.isInteger(e)||0>=e)throw new TypeError("elementSpan must be a (positive) integer");super(-1,t),this.elementSpan=e}isCount(){return 1}decode(e,t){void 0===t&&(t=0);const r=e.length-t;return Math.floor(r/this.elementSpan)}encode(e,t,r){return 0}}class l extends u{constructor(e,t,r){if(!(e instanceof i))throw new TypeError("layout must be a Layout");if(void 0===t)t=0;else if(!Number.isInteger(t))throw new TypeError("offset must be integer or undefined");super(e.span,r||e.property),this.layout=e,this.offset=t}isCount(){return this.layout instanceof d||this.layout instanceof h}decode(e,t){return void 0===t&&(t=0),this.layout.decode(e,t+this.offset)}encode(e,t,r){return void 0===r&&(r=0),this.layout.encode(e,t,r+this.offset)}}class d extends i{constructor(e,t){if(super(e,t),6<this.span)throw new RangeError("span must not exceed 6 bytes")}decode(e,t){return void 0===t&&(t=0),e.readUIntLE(t,this.span)}encode(e,t,r){return void 0===r&&(r=0),t.writeUIntLE(e,r,this.span),this.span}}class h extends i{constructor(e,t){if(super(e,t),6<this.span)throw new RangeError("span must not exceed 6 bytes")}decode(e,t){return void 0===t&&(t=0),e.readUIntBE(t,this.span)}encode(e,t,r){return void 0===r&&(r=0),t.writeUIntBE(e,r,this.span),this.span}}class p extends i{constructor(e,t){if(super(e,t),6<this.span)throw new RangeError("span must not exceed 6 bytes")}decode(e,t){return void 0===t&&(t=0),e.readIntLE(t,this.span)}encode(e,t,r){return void 0===r&&(r=0),t.writeIntLE(e,r,this.span),this.span}}class m extends i{constructor(e,t){if(super(e,t),6<this.span)throw new RangeError("span must not exceed 6 bytes")}decode(e,t){return void 0===t&&(t=0),e.readIntBE(t,this.span)}encode(e,t,r){return void 0===r&&(r=0),t.writeIntBE(e,r,this.span),this.span}}const f=Math.pow(2,32);function y(e){const t=Math.floor(e/f);return{hi32:t,lo32:e-t*f}}function g(e,t){return e*f+t}class w extends i{constructor(e){super(8,e)}decode(e,t){void 0===t&&(t=0);const r=e.readUInt32LE(t);return g(e.readUInt32LE(t+4),r)}encode(e,t,r){void 0===r&&(r=0);const o=y(e);return t.writeUInt32LE(o.lo32,r),t.writeUInt32LE(o.hi32,r+4),8}}class v extends i{constructor(e){super(8,e)}decode(e,t){return void 0===t&&(t=0),g(e.readUInt32BE(t),e.readUInt32BE(t+4))}encode(e,t,r){void 0===r&&(r=0);const o=y(e);return t.writeUInt32BE(o.hi32,r),t.writeUInt32BE(o.lo32,r+4),8}}class x extends i{constructor(e){super(8,e)}decode(e,t){void 0===t&&(t=0);const r=e.readUInt32LE(t);return g(e.readInt32LE(t+4),r)}encode(e,t,r){void 0===r&&(r=0);const o=y(e);return t.writeUInt32LE(o.lo32,r),t.writeInt32LE(o.hi32,r+4),8}}class b extends i{constructor(e){super(8,e)}decode(e,t){return void 0===t&&(t=0),g(e.readInt32BE(t),e.readUInt32BE(t+4))}encode(e,t,r){void 0===r&&(r=0);const o=y(e);return t.writeInt32BE(o.hi32,r),t.writeUInt32BE(o.lo32,r+4),8}}class I extends i{constructor(e){super(4,e)}decode(e,t){return void 0===t&&(t=0),e.readFloatLE(t)}encode(e,t,r){return void 0===r&&(r=0),t.writeFloatLE(e,r),4}}class E extends i{constructor(e){super(4,e)}decode(e,t){return void 0===t&&(t=0),e.readFloatBE(t)}encode(e,t,r){return void 0===r&&(r=0),t.writeFloatBE(e,r),4}}class A extends i{constructor(e){super(8,e)}decode(e,t){return void 0===t&&(t=0),e.readDoubleLE(t)}encode(e,t,r){return void 0===r&&(r=0),t.writeDoubleLE(e,r),8}}class T extends i{constructor(e){super(8,e)}decode(e,t){return void 0===t&&(t=0),e.readDoubleBE(t)}encode(e,t,r){return void 0===r&&(r=0),t.writeDoubleBE(e,r),8}}class M extends i{constructor(e,t,r){if(!(e instanceof i))throw new TypeError("elementLayout must be a Layout");if(!(t instanceof u&&t.isCount()||Number.isInteger(t)&&0<=t))throw new TypeError("count must be non-negative integer or an unsigned integer ExternalLayout");let o=-1;!(t instanceof u)&&0<e.span&&(o=t*e.span),super(o,r),this.elementLayout=e,this.count=t}getSpan(e,t){if(0<=this.span)return this.span;void 0===t&&(t=0);let r=0,o=this.count;if(o instanceof u&&(o=o.decode(e,t)),0<this.elementLayout.span)r=o*this.elementLayout.span;else{let n=0;for(;n<o;)r+=this.elementLayout.getSpan(e,t+r),++n}return r}decode(e,t){void 0===t&&(t=0);const r=[];let o=0,n=this.count;for(n instanceof u&&(n=n.decode(e,t));o<n;)r.push(this.elementLayout.decode(e,t)),t+=this.elementLayout.getSpan(e,t),o+=1;return r}encode(e,t,r){void 0===r&&(r=0);const o=this.elementLayout,n=e.reduce(((e,n)=>e+o.encode(n,t,r+e)),0);return this.count instanceof u&&this.count.encode(e.length,t,r),n}}class S extends i{constructor(e,t,r){if(!Array.isArray(e)||!e.reduce(((e,t)=>e&&t instanceof i),1))throw new TypeError("fields must be array of Layout instances");"boolean"==typeof t&&void 0===r&&(r=t,t=void 0);for(const t of e)if(0>t.span&&void 0===t.property)throw new Error("fields cannot contain unnamed variable-length layout");let o=-1;try{o=e.reduce(((e,t)=>e+t.getSpan()),0)}catch(e){}super(o,t),this.fields=e,this.decodePrefixes=!!r}getSpan(e,t){if(0<=this.span)return this.span;void 0===t&&(t=0);let r=0;try{r=this.fields.reduce(((r,o)=>{const n=o.getSpan(e,t);return t+=n,r+n}),0)}catch(e){throw new RangeError("indeterminate span")}return r}decode(e,t){void 0===t&&(t=0);const r=this.makeDestinationObject();for(const o of this.fields)if(void 0!==o.property&&(r[o.property]=o.decode(e,t)),t+=o.getSpan(e,t),this.decodePrefixes&&e.length===t)break;return r}encode(e,t,r){void 0===r&&(r=0);const o=r;let n=0,s=0;for(const o of this.fields){let i=o.span;if(s=0<i?i:0,void 0!==o.property){const n=e[o.property];void 0!==n&&(s=o.encode(n,t,r),0>i&&(i=o.getSpan(t,r)))}n=r,r+=i}return n+s-o}fromArray(e){const t=this.makeDestinationObject();for(const r of this.fields)void 0!==r.property&&0<e.length&&(t[r.property]=e.shift());return t}layoutFor(e){if("string"!=typeof e)throw new TypeError("property must be string");for(const t of this.fields)if(t.property===e)return t}offsetOf(e){if("string"!=typeof e)throw new TypeError("property must be string");let t=0;for(const r of this.fields){if(r.property===e)return t;0>r.span?t=-1:0<=t&&(t+=r.span)}}}class C{constructor(e){this.property=e}decode(){throw new Error("UnionDiscriminator is abstract")}encode(){throw new Error("UnionDiscriminator is abstract")}}class k extends C{constructor(e,t){if(!(e instanceof u&&e.isCount()))throw new TypeError("layout must be an unsigned integer ExternalLayout");super(t||e.property||"variant"),this.layout=e}decode(e,t){return this.layout.decode(e,t)}encode(e,t,r){return this.layout.encode(e,t,r)}}class _ extends i{constructor(e,t,r){const o=e instanceof d||e instanceof h;if(o)e=new k(new l(e));else if(e instanceof u&&e.isCount())e=new k(e);else if(!(e instanceof C))throw new TypeError("discr must be a UnionDiscriminator or an unsigned integer layout");if(void 0===t&&(t=null),!(null===t||t instanceof i))throw new TypeError("defaultLayout must be null or a Layout");if(null!==t){if(0>t.span)throw new Error("defaultLayout must have constant span");void 0===t.property&&(t=t.replicate("content"))}let n=-1;t&&(n=t.span,0<=n&&o&&(n+=e.layout.span)),super(n,r),this.discriminator=e,this.usesPrefixDiscriminator=o,this.defaultLayout=t,this.registry={};let s=this.defaultGetSourceVariant.bind(this);this.getSourceVariant=function(e){return s(e)},this.configGetSourceVariant=function(e){s=e.bind(this)}}getSpan(e,t){if(0<=this.span)return this.span;void 0===t&&(t=0);const r=this.getVariant(e,t);if(!r)throw new Error("unable to determine span for unrecognized variant");return r.getSpan(e,t)}defaultGetSourceVariant(e){if(e.hasOwnProperty(this.discriminator.property)){if(this.defaultLayout&&e.hasOwnProperty(this.defaultLayout.property))return;const t=this.registry[e[this.discriminator.property]];if(t&&(!t.layout||e.hasOwnProperty(t.property)))return t}else for(const t in this.registry){const r=this.registry[t];if(e.hasOwnProperty(r.property))return r}throw new Error("unable to infer src variant")}decode(e,t){let r;void 0===t&&(t=0);const o=this.discriminator,n=o.decode(e,t);let s=this.registry[n];if(void 0===s){let i=0;s=this.defaultLayout,this.usesPrefixDiscriminator&&(i=o.layout.span),r=this.makeDestinationObject(),r[o.property]=n,r[s.property]=this.defaultLayout.decode(e,t+i)}else r=s.decode(e,t);return r}encode(e,t,r){void 0===r&&(r=0);const o=this.getSourceVariant(e);if(void 0===o){const o=this.discriminator,n=this.defaultLayout;let s=0;return this.usesPrefixDiscriminator&&(s=o.layout.span),o.encode(e[o.property],t,r),s+n.encode(e[n.property],t,r+s)}return o.encode(e,t,r)}addVariant(e,t,r){const o=new P(this,e,t,r);return this.registry[e]=o,o}getVariant(e,t){let r=e;return Buffer.isBuffer(e)&&(void 0===t&&(t=0),r=this.discriminator.decode(e,t)),this.registry[r]}}class P extends i{constructor(e,t,r,o){if(!(e instanceof _))throw new TypeError("union must be a Union");if(!Number.isInteger(t)||0>t)throw new TypeError("variant must be a (non-negative) integer");if("string"==typeof r&&void 0===o&&(o=r,r=null),r){if(!(r instanceof i))throw new TypeError("layout must be a Layout");if(null!==e.defaultLayout&&0<=r.span&&r.span>e.defaultLayout.span)throw new Error("variant span exceeds span of containing union");if("string"!=typeof o)throw new TypeError("variant must have a String property")}let n=e.span;0>e.span&&(n=r?r.span:0,0<=n&&e.usesPrefixDiscriminator&&(n+=e.discriminator.layout.span)),super(n,o),this.union=e,this.variant=t,this.layout=r||null}getSpan(e,t){if(0<=this.span)return this.span;void 0===t&&(t=0);let r=0;return this.union.usesPrefixDiscriminator&&(r=this.union.discriminator.layout.span),r+this.layout.getSpan(e,t+r)}decode(e,t){const r=this.makeDestinationObject();if(void 0===t&&(t=0),this!==this.union.getVariant(e,t))throw new Error("variant mismatch");let o=0;return this.union.usesPrefixDiscriminator&&(o=this.union.discriminator.layout.span),this.layout?r[this.property]=this.layout.decode(e,t+o):this.property?r[this.property]=1:this.union.usesPrefixDiscriminator&&(r[this.union.discriminator.property]=this.variant),r}encode(e,t,r){void 0===r&&(r=0);let o=0;if(this.union.usesPrefixDiscriminator&&(o=this.union.discriminator.layout.span),this.layout&&!e.hasOwnProperty(this.property))throw new TypeError("variant lacks property "+this.property);this.union.discriminator.encode(this.variant,t,r);let n=o;if(this.layout&&(this.layout.encode(e[this.property],t,r+o),n+=this.layout.getSpan(t,r+o),0<=this.union.span&&n>this.union.span))throw new Error("encoded variant overruns containing union");return n}fromArray(e){if(this.layout)return this.layout.fromArray(e)}}function O(e){return 0>e&&(e+=4294967296),e}class L extends i{constructor(e,t,r){if(!(e instanceof d||e instanceof h))throw new TypeError("word must be a UInt or UIntBE layout");if("string"==typeof t&&void 0===r&&(r=t,t=void 0),4<e.span)throw new RangeError("word cannot exceed 32 bits");super(e.span,r),this.word=e,this.msb=!!t,this.fields=[];let o=0;this._packedSetValue=function(e){return o=O(e),this},this._packedGetValue=function(){return o}}decode(e,t){const r=this.makeDestinationObject();void 0===t&&(t=0);const o=this.word.decode(e,t);this._packedSetValue(o);for(const e of this.fields)void 0!==e.property&&(r[e.property]=e.decode(o));return r}encode(e,t,r){void 0===r&&(r=0);const o=this.word.decode(t,r);this._packedSetValue(o);for(const t of this.fields)if(void 0!==t.property){const r=e[t.property];void 0!==r&&t.encode(r)}return this.word.encode(this._packedGetValue(),t,r)}addField(e,t){const r=new N(this,e,t);return this.fields.push(r),r}addBoolean(e){const t=new B(this,e);return this.fields.push(t),t}fieldFor(e){if("string"!=typeof e)throw new TypeError("property must be string");for(const t of this.fields)if(t.property===e)return t}}class N{constructor(e,t,r){if(!(e instanceof L))throw new TypeError("container must be a BitStructure");if(!Number.isInteger(t)||0>=t)throw new TypeError("bits must be positive integer");const o=8*e.span,n=e.fields.reduce(((e,t)=>e+t.bits),0);if(t+n>o)throw new Error("bits too long for span remainder ("+(o-n)+" of "+o+" remain)");this.container=e,this.bits=t,this.valueMask=(1<<t)-1,32===t&&(this.valueMask=4294967295),this.start=n,this.container.msb&&(this.start=o-n-t),this.wordMask=O(this.valueMask<<this.start),this.property=r}decode(){return O(this.container._packedGetValue()&this.wordMask)>>>this.start}encode(e){if(!Number.isInteger(e)||e!==O(e&this.valueMask))throw new TypeError(a("BitField.encode",this)+" value must be integer not exceeding "+this.valueMask);const t=this.container._packedGetValue(),r=O(e<<this.start);this.container._packedSetValue(O(t&~this.wordMask)|r)}}let B=class extends N{constructor(e,t){super(e,1,t)}decode(e,t){return!!N.prototype.decode.call(this,e,t)}encode(e){return"boolean"==typeof e&&(e=+e),N.prototype.encode.call(this,e)}};class R extends i{constructor(e,t){if(!(e instanceof u&&e.isCount()||Number.isInteger(e)&&0<=e))throw new TypeError("length must be positive integer or an unsigned integer ExternalLayout");let r=-1;e instanceof u||(r=e),super(r,t),this.length=e}getSpan(e,t){let r=this.span;return 0>r&&(r=this.length.decode(e,t)),r}decode(e,t){void 0===t&&(t=0);let r=this.span;return 0>r&&(r=this.length.decode(e,t)),e.slice(t,t+r)}encode(e,t,r){let o=this.length;if(this.length instanceof u&&(o=e.length),!Buffer.isBuffer(e)||o!==e.length)throw new TypeError(a("Blob.encode",this)+" requires (length "+o+") Buffer as src");if(r+o>t.length)throw new RangeError("encoding overruns Buffer");return t.write(e.toString("hex"),r,o,"hex"),this.length instanceof u&&this.length.encode(o,t,r),o}}class D extends i{constructor(e){super(-1,e)}getSpan(e,t){if(!Buffer.isBuffer(e))throw new TypeError("b must be a Buffer");void 0===t&&(t=0);let r=t;for(;r<e.length&&0!==e[r];)r+=1;return 1+r-t}decode(e,t,r){void 0===t&&(t=0);let o=this.getSpan(e,t);return e.slice(t,t+o-1).toString("utf-8")}encode(e,t,r){void 0===r&&(r=0),"string"!=typeof e&&(e=e.toString());const o=new Buffer(e,"utf8"),n=o.length;if(r+n>t.length)throw new RangeError("encoding overruns Buffer");return o.copy(t,r),t[r+n]=0,n+1}}class V extends i{constructor(e,t){if("string"==typeof e&&void 0===t&&(t=e,e=void 0),void 0===e)e=-1;else if(!Number.isInteger(e))throw new TypeError("maxSpan must be an integer");super(-1,t),this.maxSpan=e}getSpan(e,t){if(!Buffer.isBuffer(e))throw new TypeError("b must be a Buffer");return void 0===t&&(t=0),e.length-t}decode(e,t,r){void 0===t&&(t=0);let o=this.getSpan(e,t);if(0<=this.maxSpan&&this.maxSpan<o)throw new RangeError("text length exceeds maxSpan");return e.slice(t,t+o).toString("utf-8")}encode(e,t,r){void 0===r&&(r=0),"string"!=typeof e&&(e=e.toString());const o=new Buffer(e,"utf8"),n=o.length;if(0<=this.maxSpan&&this.maxSpan<n)throw new RangeError("text length exceeds maxSpan");if(r+n>t.length)throw new RangeError("encoding overruns Buffer");return o.copy(t,r),n}}class U extends i{constructor(e,t){super(0,t),this.value=e}decode(e,t,r){return this.value}encode(e,t,r){return 0}}s.ExternalLayout=u,s.GreedyCount=c,s.OffsetLayout=l,s.UInt=d,s.UIntBE=h,s.Int=p,s.IntBE=m,s.Float=I,s.FloatBE=E,s.Double=A,s.DoubleBE=T,s.Sequence=M,s.Structure=S,s.UnionDiscriminator=C,s.UnionLayoutDiscriminator=k,s.Union=_,s.VariantLayout=P,s.BitStructure=L,s.BitField=N,s.Boolean=B,s.Blob=R,s.CString=D,s.UTF8=V,s.Constant=U,s.greedy=(e,t)=>new c(e,t),s.offset=(e,t,r)=>new l(e,t,r),s.u8=e=>new d(1,e),s.u16=e=>new d(2,e),s.u24=e=>new d(3,e),s.u32=e=>new d(4,e),s.u40=e=>new d(5,e),s.u48=e=>new d(6,e),s.nu64=e=>new w(e),s.u16be=e=>new h(2,e),s.u24be=e=>new h(3,e),s.u32be=e=>new h(4,e),s.u40be=e=>new h(5,e),s.u48be=e=>new h(6,e),s.nu64be=e=>new v(e),s.s8=e=>new p(1,e),s.s16=e=>new p(2,e),s.s24=e=>new p(3,e),s.s32=e=>new p(4,e),s.s40=e=>new p(5,e),s.s48=e=>new p(6,e),s.ns64=e=>new x(e),s.s16be=e=>new m(2,e),s.s24be=e=>new m(3,e),s.s32be=e=>new m(4,e),s.s40be=e=>new m(5,e),s.s48be=e=>new m(6,e),s.ns64be=e=>new b(e),s.f32=e=>new I(e),s.f32be=e=>new E(e),s.f64=e=>new A(e),s.f64be=e=>new T(e),s.struct=(e,t,r)=>new S(e,t,r),s.bits=(e,t,r)=>new L(e,t,r),s.seq=(e,t,r)=>new M(e,t,r),s.union=(e,t,r)=>new _(e,t,r),s.unionLayoutDiscriminator=(e,t)=>new k(e,t),s.blob=(e,t)=>new R(e,t),s.cstr=e=>new D(e),s.utf8=(e,t)=>new V(e,t),s.const=(e,t)=>new U(e,t);var q={exports:{}};!function(e,t){function r(e,t){if(!e)throw new Error(t||"Assertion failed")}function o(e,t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}function n(e,t,r){if(n.isBN(e))return e;this.negative=0,this.words=null,this.length=0,this.red=null,null!==e&&("le"!==t&&"be"!==t||(r=t,t=10),this._init(e||0,t||10,r||"be"))}var s;"object"==typeof q?q.exports=n:t.BN=n,n.BN=n,n.wordSize=26;try{s="undefined"!=typeof window&&void 0!==window.Buffer?window.Buffer:require("buffer").Buffer}catch(e){}function i(e,t){var o=e.charCodeAt(t);return o>=48&&o<=57?o-48:o>=65&&o<=70?o-55:o>=97&&o<=102?o-87:void r(0,"Invalid character in "+e)}function a(e,t,r){var o=i(e,r);return r-1>=t&&(o|=i(e,r-1)<<4),o}function u(e,t,o,n){for(var s=0,i=0,a=Math.min(e.length,o),u=t;u<a;u++){var c=e.charCodeAt(u)-48;s*=n,i=c>=49?c-49+10:c>=17?c-17+10:c,r(c>=0&&i<n,"Invalid character"),s+=i}return s}function c(e,t){e.words=t.words,e.length=t.length,e.negative=t.negative,e.red=t.red}if(n.isBN=function(e){return e instanceof n?1:null!==e&&"object"==typeof e&&e.constructor.wordSize===n.wordSize&&Array.isArray(e.words)},n.max=function(e,t){return e.cmp(t)>0?e:t},n.min=function(e,t){return e.cmp(t)<0?e:t},n.prototype._init=function(e,t,o){if("number"==typeof e)return this._initNumber(e,t,o);if("object"==typeof e)return this._initArray(e,t,o);"hex"===t&&(t=16),r(t===(0|t)&&t>=2&&t<=36);var n=0;"-"===(e=e.toString().replace(/\s+/g,""))[0]&&(n++,this.negative=1),n<e.length&&(16===t?this._parseHex(e,n,o):(this._parseBase(e,t,n),"le"===o&&this._initArray(this.toArray(),t,o)))},n.prototype._initNumber=function(e,t,o){e<0&&(this.negative=1,e=-e),e<67108864?(this.words=[67108863&e],this.length=1):e<4503599627370496?(this.words=[67108863&e,e/67108864&67108863],this.length=2):(r(e<9007199254740992),this.words=[67108863&e,e/67108864&67108863,1],this.length=3),"le"===o&&this._initArray(this.toArray(),t,o)},n.prototype._initArray=function(e,t,o){if(r("number"==typeof e.length),e.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(e.length/3),this.words=new Array(this.length);for(var n=0;n<this.length;n++)this.words[n]=0;var s,i,a=0;if("be"===o)for(n=e.length-1,s=0;n>=0;n-=3)i=e[n]|e[n-1]<<8|e[n-2]<<16,this.words[s]|=i<<a&67108863,this.words[s+1]=i>>>26-a&67108863,(a+=24)>=26&&(a-=26,s++);else if("le"===o)for(n=0,s=0;n<e.length;n+=3)i=e[n]|e[n+1]<<8|e[n+2]<<16,this.words[s]|=i<<a&67108863,this.words[s+1]=i>>>26-a&67108863,(a+=24)>=26&&(a-=26,s++);return this._strip()},n.prototype._parseHex=function(e,t,r){this.length=Math.ceil((e.length-t)/6),this.words=new Array(this.length);for(var o=0;o<this.length;o++)this.words[o]=0;var n,s=0,i=0;if("be"===r)for(o=e.length-1;o>=t;o-=2)n=a(e,t,o)<<s,this.words[i]|=67108863&n,s>=18?(s-=18,i+=1,this.words[i]|=n>>>26):s+=8;else for(o=(e.length-t)%2==0?t+1:t;o<e.length;o+=2)n=a(e,t,o)<<s,this.words[i]|=67108863&n,s>=18?(s-=18,i+=1,this.words[i]|=n>>>26):s+=8;this._strip()},n.prototype._parseBase=function(e,t,r){this.words=[0],this.length=1;for(var o=0,n=1;n<=67108863;n*=t)o++;o--,n=n/t|0;for(var s=e.length-r,i=s%o,a=Math.min(s,s-i)+r,c=0,l=r;l<a;l+=o)c=u(e,l,l+o,t),this.imuln(n),this.words[0]+c<67108864?this.words[0]+=c:this._iaddn(c);if(0!==i){var d=1;for(c=u(e,l,e.length,t),l=0;l<i;l++)d*=t;this.imuln(d),this.words[0]+c<67108864?this.words[0]+=c:this._iaddn(c)}this._strip()},n.prototype.copy=function(e){e.words=new Array(this.length);for(var t=0;t<this.length;t++)e.words[t]=this.words[t];e.length=this.length,e.negative=this.negative,e.red=this.red},n.prototype._move=function(e){c(e,this)},n.prototype.clone=function(){var e=new n(null);return this.copy(e),e},n.prototype._expand=function(e){for(;this.length<e;)this.words[this.length++]=0;return this},n.prototype._strip=function(){for(;this.length>1&&0===this.words[this.length-1];)this.length--;return this._normSign()},n.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},"undefined"!=typeof Symbol&&"function"==typeof Symbol.for)try{n.prototype[Symbol.for("nodejs.util.inspect.custom")]=l}catch(e){n.prototype.inspect=l}else n.prototype.inspect=l;function l(){return(this.red?"<BN-R: ":"<BN: ")+this.toString(16)+">"}var d=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],h=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],p=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function m(e,t,r){r.negative=t.negative^e.negative;var o=e.length+t.length|0;r.length=o,o=o-1|0;var n=0|e.words[0],s=0|t.words[0],i=n*s,a=67108863&i,u=i/67108864|0;r.words[0]=a;for(var c=1;c<o;c++){for(var l=u>>>26,d=67108863&u,h=Math.min(c,t.length-1),p=Math.max(0,c-e.length+1);p<=h;p++){var m=c-p|0;l+=(i=(n=0|e.words[m])*(s=0|t.words[p])+d)/67108864|0,d=67108863&i}r.words[c]=0|d,u=0|l}return 0!==u?r.words[c]=0|u:r.length--,r._strip()}n.prototype.toString=function(e,t){var o;if(t=0|t||1,16===(e=e||10)||"hex"===e){o="";for(var n=0,s=0,i=0;i<this.length;i++){var a=this.words[i],u=(16777215&(a<<n|s)).toString(16);s=a>>>24-n&16777215,(n+=2)>=26&&(n-=26,i--),o=0!==s||i!==this.length-1?d[6-u.length]+u+o:u+o}for(0!==s&&(o=s.toString(16)+o);o.length%t!=0;)o="0"+o;return 0!==this.negative&&(o="-"+o),o}if(e===(0|e)&&e>=2&&e<=36){var c=h[e],l=p[e];o="";var m=this.clone();for(m.negative=0;!m.isZero();){var f=m.modrn(l).toString(e);o=(m=m.idivn(l)).isZero()?f+o:d[c-f.length]+f+o}for(this.isZero()&&(o="0"+o);o.length%t!=0;)o="0"+o;return 0!==this.negative&&(o="-"+o),o}r(0,"Base should be between 2 and 36")},n.prototype.toNumber=function(){var e=this.words[0];return 2===this.length?e+=67108864*this.words[1]:3===this.length&&1===this.words[2]?e+=4503599627370496+67108864*this.words[1]:this.length>2&&r(0,"Number can only safely store up to 53 bits"),0!==this.negative?-e:e},n.prototype.toJSON=function(){return this.toString(16,2)},s&&(n.prototype.toBuffer=function(e,t){return this.toArrayLike(s,e,t)}),n.prototype.toArray=function(e,t){return this.toArrayLike(Array,e,t)},n.prototype.toArrayLike=function(e,t,o){this._strip();var n=this.byteLength(),s=o||Math.max(1,n);r(n<=s,"byte array longer than desired length"),r(s>0,"Requested array length <= 0");var i=function(e,t){return e.allocUnsafe?e.allocUnsafe(t):new e(t)}(e,s);return this["_toArrayLike"+("le"===t?"LE":"BE")](i,n),i},n.prototype._toArrayLikeLE=function(e){for(var t=0,r=0,o=0,n=0;o<this.length;o++){var s=this.words[o]<<n|r;e[t++]=255&s,t<e.length&&(e[t++]=s>>8&255),t<e.length&&(e[t++]=s>>16&255),6===n?(t<e.length&&(e[t++]=s>>24&255),r=0,n=0):(r=s>>>24,n+=2)}if(t<e.length)for(e[t++]=r;t<e.length;)e[t++]=0},n.prototype._toArrayLikeBE=function(e){for(var t=e.length-1,r=0,o=0,n=0;o<this.length;o++){var s=this.words[o]<<n|r;e[t--]=255&s,t>=0&&(e[t--]=s>>8&255),t>=0&&(e[t--]=s>>16&255),6===n?(t>=0&&(e[t--]=s>>24&255),r=0,n=0):(r=s>>>24,n+=2)}if(t>=0)for(e[t--]=r;t>=0;)e[t--]=0},Math.clz32?n.prototype._countBits=function(e){return 32-Math.clz32(e)}:n.prototype._countBits=function(e){var t=e,r=0;return t>=4096&&(r+=13,t>>>=13),t>=64&&(r+=7,t>>>=7),t>=8&&(r+=4,t>>>=4),t>=2&&(r+=2,t>>>=2),r+t},n.prototype._zeroBits=function(e){if(0===e)return 26;var t=e,r=0;return 0==(8191&t)&&(r+=13,t>>>=13),0==(127&t)&&(r+=7,t>>>=7),0==(15&t)&&(r+=4,t>>>=4),0==(3&t)&&(r+=2,t>>>=2),0==(1&t)&&r++,r},n.prototype.bitLength=function(){var e=this.words[this.length-1],t=this._countBits(e);return 26*(this.length-1)+t},n.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,t=0;t<this.length;t++){var r=this._zeroBits(this.words[t]);if(e+=r,26!==r)break}return e},n.prototype.byteLength=function(){return Math.ceil(this.bitLength()/8)},n.prototype.toTwos=function(e){return 0!==this.negative?this.abs().inotn(e).iaddn(1):this.clone()},n.prototype.fromTwos=function(e){return this.testn(e-1)?this.notn(e).iaddn(1).ineg():this.clone()},n.prototype.isNeg=function(){return 0!==this.negative},n.prototype.neg=function(){return this.clone().ineg()},n.prototype.ineg=function(){return this.isZero()||(this.negative^=1),this},n.prototype.iuor=function(e){for(;this.length<e.length;)this.words[this.length++]=0;for(var t=0;t<e.length;t++)this.words[t]=this.words[t]|e.words[t];return this._strip()},n.prototype.ior=function(e){return r(0==(this.negative|e.negative)),this.iuor(e)},n.prototype.or=function(e){return this.length>e.length?this.clone().ior(e):e.clone().ior(this)},n.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},n.prototype.iuand=function(e){var t;t=this.length>e.length?e:this;for(var r=0;r<t.length;r++)this.words[r]=this.words[r]&e.words[r];return this.length=t.length,this._strip()},n.prototype.iand=function(e){return r(0==(this.negative|e.negative)),this.iuand(e)},n.prototype.and=function(e){return this.length>e.length?this.clone().iand(e):e.clone().iand(this)},n.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},n.prototype.iuxor=function(e){var t,r;this.length>e.length?(t=this,r=e):(t=e,r=this);for(var o=0;o<r.length;o++)this.words[o]=t.words[o]^r.words[o];if(this!==t)for(;o<t.length;o++)this.words[o]=t.words[o];return this.length=t.length,this._strip()},n.prototype.ixor=function(e){return r(0==(this.negative|e.negative)),this.iuxor(e)},n.prototype.xor=function(e){return this.length>e.length?this.clone().ixor(e):e.clone().ixor(this)},n.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},n.prototype.inotn=function(e){r("number"==typeof e&&e>=0);var t=0|Math.ceil(e/26),o=e%26;this._expand(t),o>0&&t--;for(var n=0;n<t;n++)this.words[n]=67108863&~this.words[n];return o>0&&(this.words[n]=~this.words[n]&67108863>>26-o),this._strip()},n.prototype.notn=function(e){return this.clone().inotn(e)},n.prototype.setn=function(e,t){r("number"==typeof e&&e>=0);var o=e/26|0,n=e%26;return this._expand(o+1),this.words[o]=t?this.words[o]|1<<n:this.words[o]&~(1<<n),this._strip()},n.prototype.iadd=function(e){var t,r,o;if(0!==this.negative&&0===e.negative)return this.negative=0,t=this.isub(e),this.negative^=1,this._normSign();if(0===this.negative&&0!==e.negative)return e.negative=0,t=this.isub(e),e.negative=1,t._normSign();this.length>e.length?(r=this,o=e):(r=e,o=this);for(var n=0,s=0;s<o.length;s++)t=(0|r.words[s])+(0|o.words[s])+n,this.words[s]=67108863&t,n=t>>>26;for(;0!==n&&s<r.length;s++)t=(0|r.words[s])+n,this.words[s]=67108863&t,n=t>>>26;if(this.length=r.length,0!==n)this.words[this.length]=n,this.length++;else if(r!==this)for(;s<r.length;s++)this.words[s]=r.words[s];return this},n.prototype.add=function(e){var t;return 0!==e.negative&&0===this.negative?(e.negative=0,t=this.sub(e),e.negative^=1,t):0===e.negative&&0!==this.negative?(this.negative=0,t=e.sub(this),this.negative=1,t):this.length>e.length?this.clone().iadd(e):e.clone().iadd(this)},n.prototype.isub=function(e){if(0!==e.negative){e.negative=0;var t=this.iadd(e);return e.negative=1,t._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var r,o,n=this.cmp(e);if(0===n)return this.negative=0,this.length=1,this.words[0]=0,this;n>0?(r=this,o=e):(r=e,o=this);for(var s=0,i=0;i<o.length;i++)s=(t=(0|r.words[i])-(0|o.words[i])+s)>>26,this.words[i]=67108863&t;for(;0!==s&&i<r.length;i++)s=(t=(0|r.words[i])+s)>>26,this.words[i]=67108863&t;if(0===s&&i<r.length&&r!==this)for(;i<r.length;i++)this.words[i]=r.words[i];return this.length=Math.max(this.length,i),r!==this&&(this.negative=1),this._strip()},n.prototype.sub=function(e){return this.clone().isub(e)};var f=function(e,t,r){var o,n,s,i=e.words,a=t.words,u=r.words,c=0,l=0|i[0],d=8191&l,h=l>>>13,p=0|i[1],m=8191&p,f=p>>>13,y=0|i[2],g=8191&y,w=y>>>13,v=0|i[3],x=8191&v,b=v>>>13,I=0|i[4],E=8191&I,A=I>>>13,T=0|i[5],M=8191&T,S=T>>>13,C=0|i[6],k=8191&C,_=C>>>13,P=0|i[7],O=8191&P,L=P>>>13,N=0|i[8],B=8191&N,R=N>>>13,D=0|i[9],V=8191&D,U=D>>>13,q=0|a[0],F=8191&q,K=q>>>13,H=0|a[1],W=8191&H,$=H>>>13,j=0|a[2],z=8191&j,Z=j>>>13,G=0|a[3],Q=8191&G,J=G>>>13,X=0|a[4],Y=8191&X,ee=X>>>13,te=0|a[5],re=8191&te,oe=te>>>13,ne=0|a[6],se=8191&ne,ie=ne>>>13,ae=0|a[7],ue=8191&ae,ce=ae>>>13,le=0|a[8],de=8191&le,he=le>>>13,pe=0|a[9],me=8191&pe,fe=pe>>>13;r.negative=e.negative^t.negative,r.length=19;var ye=(c+(o=Math.imul(d,F))|0)+((8191&(n=(n=Math.imul(d,K))+Math.imul(h,F)|0))<<13)|0;c=((s=Math.imul(h,K))+(n>>>13)|0)+(ye>>>26)|0,ye&=67108863,o=Math.imul(m,F),n=(n=Math.imul(m,K))+Math.imul(f,F)|0,s=Math.imul(f,K);var ge=(c+(o=o+Math.imul(d,W)|0)|0)+((8191&(n=(n=n+Math.imul(d,$)|0)+Math.imul(h,W)|0))<<13)|0;c=((s=s+Math.imul(h,$)|0)+(n>>>13)|0)+(ge>>>26)|0,ge&=67108863,o=Math.imul(g,F),n=(n=Math.imul(g,K))+Math.imul(w,F)|0,s=Math.imul(w,K),o=o+Math.imul(m,W)|0,n=(n=n+Math.imul(m,$)|0)+Math.imul(f,W)|0,s=s+Math.imul(f,$)|0;var we=(c+(o=o+Math.imul(d,z)|0)|0)+((8191&(n=(n=n+Math.imul(d,Z)|0)+Math.imul(h,z)|0))<<13)|0;c=((s=s+Math.imul(h,Z)|0)+(n>>>13)|0)+(we>>>26)|0,we&=67108863,o=Math.imul(x,F),n=(n=Math.imul(x,K))+Math.imul(b,F)|0,s=Math.imul(b,K),o=o+Math.imul(g,W)|0,n=(n=n+Math.imul(g,$)|0)+Math.imul(w,W)|0,s=s+Math.imul(w,$)|0,o=o+Math.imul(m,z)|0,n=(n=n+Math.imul(m,Z)|0)+Math.imul(f,z)|0,s=s+Math.imul(f,Z)|0;var ve=(c+(o=o+Math.imul(d,Q)|0)|0)+((8191&(n=(n=n+Math.imul(d,J)|0)+Math.imul(h,Q)|0))<<13)|0;c=((s=s+Math.imul(h,J)|0)+(n>>>13)|0)+(ve>>>26)|0,ve&=67108863,o=Math.imul(E,F),n=(n=Math.imul(E,K))+Math.imul(A,F)|0,s=Math.imul(A,K),o=o+Math.imul(x,W)|0,n=(n=n+Math.imul(x,$)|0)+Math.imul(b,W)|0,s=s+Math.imul(b,$)|0,o=o+Math.imul(g,z)|0,n=(n=n+Math.imul(g,Z)|0)+Math.imul(w,z)|0,s=s+Math.imul(w,Z)|0,o=o+Math.imul(m,Q)|0,n=(n=n+Math.imul(m,J)|0)+Math.imul(f,Q)|0,s=s+Math.imul(f,J)|0;var xe=(c+(o=o+Math.imul(d,Y)|0)|0)+((8191&(n=(n=n+Math.imul(d,ee)|0)+Math.imul(h,Y)|0))<<13)|0;c=((s=s+Math.imul(h,ee)|0)+(n>>>13)|0)+(xe>>>26)|0,xe&=67108863,o=Math.imul(M,F),n=(n=Math.imul(M,K))+Math.imul(S,F)|0,s=Math.imul(S,K),o=o+Math.imul(E,W)|0,n=(n=n+Math.imul(E,$)|0)+Math.imul(A,W)|0,s=s+Math.imul(A,$)|0,o=o+Math.imul(x,z)|0,n=(n=n+Math.imul(x,Z)|0)+Math.imul(b,z)|0,s=s+Math.imul(b,Z)|0,o=o+Math.imul(g,Q)|0,n=(n=n+Math.imul(g,J)|0)+Math.imul(w,Q)|0,s=s+Math.imul(w,J)|0,o=o+Math.imul(m,Y)|0,n=(n=n+Math.imul(m,ee)|0)+Math.imul(f,Y)|0,s=s+Math.imul(f,ee)|0;var be=(c+(o=o+Math.imul(d,re)|0)|0)+((8191&(n=(n=n+Math.imul(d,oe)|0)+Math.imul(h,re)|0))<<13)|0;c=((s=s+Math.imul(h,oe)|0)+(n>>>13)|0)+(be>>>26)|0,be&=67108863,o=Math.imul(k,F),n=(n=Math.imul(k,K))+Math.imul(_,F)|0,s=Math.imul(_,K),o=o+Math.imul(M,W)|0,n=(n=n+Math.imul(M,$)|0)+Math.imul(S,W)|0,s=s+Math.imul(S,$)|0,o=o+Math.imul(E,z)|0,n=(n=n+Math.imul(E,Z)|0)+Math.imul(A,z)|0,s=s+Math.imul(A,Z)|0,o=o+Math.imul(x,Q)|0,n=(n=n+Math.imul(x,J)|0)+Math.imul(b,Q)|0,s=s+Math.imul(b,J)|0,o=o+Math.imul(g,Y)|0,n=(n=n+Math.imul(g,ee)|0)+Math.imul(w,Y)|0,s=s+Math.imul(w,ee)|0,o=o+Math.imul(m,re)|0,n=(n=n+Math.imul(m,oe)|0)+Math.imul(f,re)|0,s=s+Math.imul(f,oe)|0;var Ie=(c+(o=o+Math.imul(d,se)|0)|0)+((8191&(n=(n=n+Math.imul(d,ie)|0)+Math.imul(h,se)|0))<<13)|0;c=((s=s+Math.imul(h,ie)|0)+(n>>>13)|0)+(Ie>>>26)|0,Ie&=67108863,o=Math.imul(O,F),n=(n=Math.imul(O,K))+Math.imul(L,F)|0,s=Math.imul(L,K),o=o+Math.imul(k,W)|0,n=(n=n+Math.imul(k,$)|0)+Math.imul(_,W)|0,s=s+Math.imul(_,$)|0,o=o+Math.imul(M,z)|0,n=(n=n+Math.imul(M,Z)|0)+Math.imul(S,z)|0,s=s+Math.imul(S,Z)|0,o=o+Math.imul(E,Q)|0,n=(n=n+Math.imul(E,J)|0)+Math.imul(A,Q)|0,s=s+Math.imul(A,J)|0,o=o+Math.imul(x,Y)|0,n=(n=n+Math.imul(x,ee)|0)+Math.imul(b,Y)|0,s=s+Math.imul(b,ee)|0,o=o+Math.imul(g,re)|0,n=(n=n+Math.imul(g,oe)|0)+Math.imul(w,re)|0,s=s+Math.imul(w,oe)|0,o=o+Math.imul(m,se)|0,n=(n=n+Math.imul(m,ie)|0)+Math.imul(f,se)|0,s=s+Math.imul(f,ie)|0;var Ee=(c+(o=o+Math.imul(d,ue)|0)|0)+((8191&(n=(n=n+Math.imul(d,ce)|0)+Math.imul(h,ue)|0))<<13)|0;c=((s=s+Math.imul(h,ce)|0)+(n>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,o=Math.imul(B,F),n=(n=Math.imul(B,K))+Math.imul(R,F)|0,s=Math.imul(R,K),o=o+Math.imul(O,W)|0,n=(n=n+Math.imul(O,$)|0)+Math.imul(L,W)|0,s=s+Math.imul(L,$)|0,o=o+Math.imul(k,z)|0,n=(n=n+Math.imul(k,Z)|0)+Math.imul(_,z)|0,s=s+Math.imul(_,Z)|0,o=o+Math.imul(M,Q)|0,n=(n=n+Math.imul(M,J)|0)+Math.imul(S,Q)|0,s=s+Math.imul(S,J)|0,o=o+Math.imul(E,Y)|0,n=(n=n+Math.imul(E,ee)|0)+Math.imul(A,Y)|0,s=s+Math.imul(A,ee)|0,o=o+Math.imul(x,re)|0,n=(n=n+Math.imul(x,oe)|0)+Math.imul(b,re)|0,s=s+Math.imul(b,oe)|0,o=o+Math.imul(g,se)|0,n=(n=n+Math.imul(g,ie)|0)+Math.imul(w,se)|0,s=s+Math.imul(w,ie)|0,o=o+Math.imul(m,ue)|0,n=(n=n+Math.imul(m,ce)|0)+Math.imul(f,ue)|0,s=s+Math.imul(f,ce)|0;var Ae=(c+(o=o+Math.imul(d,de)|0)|0)+((8191&(n=(n=n+Math.imul(d,he)|0)+Math.imul(h,de)|0))<<13)|0;c=((s=s+Math.imul(h,he)|0)+(n>>>13)|0)+(Ae>>>26)|0,Ae&=67108863,o=Math.imul(V,F),n=(n=Math.imul(V,K))+Math.imul(U,F)|0,s=Math.imul(U,K),o=o+Math.imul(B,W)|0,n=(n=n+Math.imul(B,$)|0)+Math.imul(R,W)|0,s=s+Math.imul(R,$)|0,o=o+Math.imul(O,z)|0,n=(n=n+Math.imul(O,Z)|0)+Math.imul(L,z)|0,s=s+Math.imul(L,Z)|0,o=o+Math.imul(k,Q)|0,n=(n=n+Math.imul(k,J)|0)+Math.imul(_,Q)|0,s=s+Math.imul(_,J)|0,o=o+Math.imul(M,Y)|0,n=(n=n+Math.imul(M,ee)|0)+Math.imul(S,Y)|0,s=s+Math.imul(S,ee)|0,o=o+Math.imul(E,re)|0,n=(n=n+Math.imul(E,oe)|0)+Math.imul(A,re)|0,s=s+Math.imul(A,oe)|0,o=o+Math.imul(x,se)|0,n=(n=n+Math.imul(x,ie)|0)+Math.imul(b,se)|0,s=s+Math.imul(b,ie)|0,o=o+Math.imul(g,ue)|0,n=(n=n+Math.imul(g,ce)|0)+Math.imul(w,ue)|0,s=s+Math.imul(w,ce)|0,o=o+Math.imul(m,de)|0,n=(n=n+Math.imul(m,he)|0)+Math.imul(f,de)|0,s=s+Math.imul(f,he)|0;var Te=(c+(o=o+Math.imul(d,me)|0)|0)+((8191&(n=(n=n+Math.imul(d,fe)|0)+Math.imul(h,me)|0))<<13)|0;c=((s=s+Math.imul(h,fe)|0)+(n>>>13)|0)+(Te>>>26)|0,Te&=67108863,o=Math.imul(V,W),n=(n=Math.imul(V,$))+Math.imul(U,W)|0,s=Math.imul(U,$),o=o+Math.imul(B,z)|0,n=(n=n+Math.imul(B,Z)|0)+Math.imul(R,z)|0,s=s+Math.imul(R,Z)|0,o=o+Math.imul(O,Q)|0,n=(n=n+Math.imul(O,J)|0)+Math.imul(L,Q)|0,s=s+Math.imul(L,J)|0,o=o+Math.imul(k,Y)|0,n=(n=n+Math.imul(k,ee)|0)+Math.imul(_,Y)|0,s=s+Math.imul(_,ee)|0,o=o+Math.imul(M,re)|0,n=(n=n+Math.imul(M,oe)|0)+Math.imul(S,re)|0,s=s+Math.imul(S,oe)|0,o=o+Math.imul(E,se)|0,n=(n=n+Math.imul(E,ie)|0)+Math.imul(A,se)|0,s=s+Math.imul(A,ie)|0,o=o+Math.imul(x,ue)|0,n=(n=n+Math.imul(x,ce)|0)+Math.imul(b,ue)|0,s=s+Math.imul(b,ce)|0,o=o+Math.imul(g,de)|0,n=(n=n+Math.imul(g,he)|0)+Math.imul(w,de)|0,s=s+Math.imul(w,he)|0;var Me=(c+(o=o+Math.imul(m,me)|0)|0)+((8191&(n=(n=n+Math.imul(m,fe)|0)+Math.imul(f,me)|0))<<13)|0;c=((s=s+Math.imul(f,fe)|0)+(n>>>13)|0)+(Me>>>26)|0,Me&=67108863,o=Math.imul(V,z),n=(n=Math.imul(V,Z))+Math.imul(U,z)|0,s=Math.imul(U,Z),o=o+Math.imul(B,Q)|0,n=(n=n+Math.imul(B,J)|0)+Math.imul(R,Q)|0,s=s+Math.imul(R,J)|0,o=o+Math.imul(O,Y)|0,n=(n=n+Math.imul(O,ee)|0)+Math.imul(L,Y)|0,s=s+Math.imul(L,ee)|0,o=o+Math.imul(k,re)|0,n=(n=n+Math.imul(k,oe)|0)+Math.imul(_,re)|0,s=s+Math.imul(_,oe)|0,o=o+Math.imul(M,se)|0,n=(n=n+Math.imul(M,ie)|0)+Math.imul(S,se)|0,s=s+Math.imul(S,ie)|0,o=o+Math.imul(E,ue)|0,n=(n=n+Math.imul(E,ce)|0)+Math.imul(A,ue)|0,s=s+Math.imul(A,ce)|0,o=o+Math.imul(x,de)|0,n=(n=n+Math.imul(x,he)|0)+Math.imul(b,de)|0,s=s+Math.imul(b,he)|0;var Se=(c+(o=o+Math.imul(g,me)|0)|0)+((8191&(n=(n=n+Math.imul(g,fe)|0)+Math.imul(w,me)|0))<<13)|0;c=((s=s+Math.imul(w,fe)|0)+(n>>>13)|0)+(Se>>>26)|0,Se&=67108863,o=Math.imul(V,Q),n=(n=Math.imul(V,J))+Math.imul(U,Q)|0,s=Math.imul(U,J),o=o+Math.imul(B,Y)|0,n=(n=n+Math.imul(B,ee)|0)+Math.imul(R,Y)|0,s=s+Math.imul(R,ee)|0,o=o+Math.imul(O,re)|0,n=(n=n+Math.imul(O,oe)|0)+Math.imul(L,re)|0,s=s+Math.imul(L,oe)|0,o=o+Math.imul(k,se)|0,n=(n=n+Math.imul(k,ie)|0)+Math.imul(_,se)|0,s=s+Math.imul(_,ie)|0,o=o+Math.imul(M,ue)|0,n=(n=n+Math.imul(M,ce)|0)+Math.imul(S,ue)|0,s=s+Math.imul(S,ce)|0,o=o+Math.imul(E,de)|0,n=(n=n+Math.imul(E,he)|0)+Math.imul(A,de)|0,s=s+Math.imul(A,he)|0;var Ce=(c+(o=o+Math.imul(x,me)|0)|0)+((8191&(n=(n=n+Math.imul(x,fe)|0)+Math.imul(b,me)|0))<<13)|0;c=((s=s+Math.imul(b,fe)|0)+(n>>>13)|0)+(Ce>>>26)|0,Ce&=67108863,o=Math.imul(V,Y),n=(n=Math.imul(V,ee))+Math.imul(U,Y)|0,s=Math.imul(U,ee),o=o+Math.imul(B,re)|0,n=(n=n+Math.imul(B,oe)|0)+Math.imul(R,re)|0,s=s+Math.imul(R,oe)|0,o=o+Math.imul(O,se)|0,n=(n=n+Math.imul(O,ie)|0)+Math.imul(L,se)|0,s=s+Math.imul(L,ie)|0,o=o+Math.imul(k,ue)|0,n=(n=n+Math.imul(k,ce)|0)+Math.imul(_,ue)|0,s=s+Math.imul(_,ce)|0,o=o+Math.imul(M,de)|0,n=(n=n+Math.imul(M,he)|0)+Math.imul(S,de)|0,s=s+Math.imul(S,he)|0;var ke=(c+(o=o+Math.imul(E,me)|0)|0)+((8191&(n=(n=n+Math.imul(E,fe)|0)+Math.imul(A,me)|0))<<13)|0;c=((s=s+Math.imul(A,fe)|0)+(n>>>13)|0)+(ke>>>26)|0,ke&=67108863,o=Math.imul(V,re),n=(n=Math.imul(V,oe))+Math.imul(U,re)|0,s=Math.imul(U,oe),o=o+Math.imul(B,se)|0,n=(n=n+Math.imul(B,ie)|0)+Math.imul(R,se)|0,s=s+Math.imul(R,ie)|0,o=o+Math.imul(O,ue)|0,n=(n=n+Math.imul(O,ce)|0)+Math.imul(L,ue)|0,s=s+Math.imul(L,ce)|0,o=o+Math.imul(k,de)|0,n=(n=n+Math.imul(k,he)|0)+Math.imul(_,de)|0,s=s+Math.imul(_,he)|0;var _e=(c+(o=o+Math.imul(M,me)|0)|0)+((8191&(n=(n=n+Math.imul(M,fe)|0)+Math.imul(S,me)|0))<<13)|0;c=((s=s+Math.imul(S,fe)|0)+(n>>>13)|0)+(_e>>>26)|0,_e&=67108863,o=Math.imul(V,se),n=(n=Math.imul(V,ie))+Math.imul(U,se)|0,s=Math.imul(U,ie),o=o+Math.imul(B,ue)|0,n=(n=n+Math.imul(B,ce)|0)+Math.imul(R,ue)|0,s=s+Math.imul(R,ce)|0,o=o+Math.imul(O,de)|0,n=(n=n+Math.imul(O,he)|0)+Math.imul(L,de)|0,s=s+Math.imul(L,he)|0;var Pe=(c+(o=o+Math.imul(k,me)|0)|0)+((8191&(n=(n=n+Math.imul(k,fe)|0)+Math.imul(_,me)|0))<<13)|0;c=((s=s+Math.imul(_,fe)|0)+(n>>>13)|0)+(Pe>>>26)|0,Pe&=67108863,o=Math.imul(V,ue),n=(n=Math.imul(V,ce))+Math.imul(U,ue)|0,s=Math.imul(U,ce),o=o+Math.imul(B,de)|0,n=(n=n+Math.imul(B,he)|0)+Math.imul(R,de)|0,s=s+Math.imul(R,he)|0;var Oe=(c+(o=o+Math.imul(O,me)|0)|0)+((8191&(n=(n=n+Math.imul(O,fe)|0)+Math.imul(L,me)|0))<<13)|0;c=((s=s+Math.imul(L,fe)|0)+(n>>>13)|0)+(Oe>>>26)|0,Oe&=67108863,o=Math.imul(V,de),n=(n=Math.imul(V,he))+Math.imul(U,de)|0,s=Math.imul(U,he);var Le=(c+(o=o+Math.imul(B,me)|0)|0)+((8191&(n=(n=n+Math.imul(B,fe)|0)+Math.imul(R,me)|0))<<13)|0;c=((s=s+Math.imul(R,fe)|0)+(n>>>13)|0)+(Le>>>26)|0,Le&=67108863;var Ne=(c+(o=Math.imul(V,me))|0)+((8191&(n=(n=Math.imul(V,fe))+Math.imul(U,me)|0))<<13)|0;return c=((s=Math.imul(U,fe))+(n>>>13)|0)+(Ne>>>26)|0,Ne&=67108863,u[0]=ye,u[1]=ge,u[2]=we,u[3]=ve,u[4]=xe,u[5]=be,u[6]=Ie,u[7]=Ee,u[8]=Ae,u[9]=Te,u[10]=Me,u[11]=Se,u[12]=Ce,u[13]=ke,u[14]=_e,u[15]=Pe,u[16]=Oe,u[17]=Le,u[18]=Ne,0!==c&&(u[19]=c,r.length++),r};function y(e,t,r){r.negative=t.negative^e.negative,r.length=e.length+t.length;for(var o=0,n=0,s=0;s<r.length-1;s++){var i=n;n=0;for(var a=67108863&o,u=Math.min(s,t.length-1),c=Math.max(0,s-e.length+1);c<=u;c++){var l=s-c,d=(0|e.words[l])*(0|t.words[c]),h=67108863&d;a=67108863&(h=h+a|0),n+=(i=(i=i+(d/67108864|0)|0)+(h>>>26)|0)>>>26,i&=67108863}r.words[s]=a,o=i,i=n}return 0!==o?r.words[s]=o:r.length--,r._strip()}function g(e,t,r){return y(e,t,r)}Math.imul||(f=m),n.prototype.mulTo=function(e,t){var r=this.length+e.length;return 10===this.length&&10===e.length?f(this,e,t):r<63?m(this,e,t):r<1024?y(this,e,t):g(this,e,t)},n.prototype.mul=function(e){var t=new n(null);return t.words=new Array(this.length+e.length),this.mulTo(e,t)},n.prototype.mulf=function(e){var t=new n(null);return t.words=new Array(this.length+e.length),g(this,e,t)},n.prototype.imul=function(e){return this.clone().mulTo(e,this)},n.prototype.imuln=function(e){var t=e<0;t&&(e=-e),r("number"==typeof e),r(e<67108864);for(var o=0,n=0;n<this.length;n++){var s=(0|this.words[n])*e,i=(67108863&s)+(67108863&o);o>>=26,o+=s/67108864|0,o+=i>>>26,this.words[n]=67108863&i}return 0!==o&&(this.words[n]=o,this.length++),t?this.ineg():this},n.prototype.muln=function(e){return this.clone().imuln(e)},n.prototype.sqr=function(){return this.mul(this)},n.prototype.isqr=function(){return this.imul(this.clone())},n.prototype.pow=function(e){var t=function(e){for(var t=new Array(e.bitLength()),r=0;r<t.length;r++){var o=r/26|0,n=r%26;t[r]=e.words[o]>>>n&1}return t}(e);if(0===t.length)return new n(1);for(var r=this,o=0;o<t.length&&0===t[o];o++,r=r.sqr());if(++o<t.length)for(var s=r.sqr();o<t.length;o++,s=s.sqr())0!==t[o]&&(r=r.mul(s));return r},n.prototype.iushln=function(e){r("number"==typeof e&&e>=0);var t,o=e%26,n=(e-o)/26,s=67108863>>>26-o<<26-o;if(0!==o){var i=0;for(t=0;t<this.length;t++){var a=this.words[t]&s,u=(0|this.words[t])-a<<o;this.words[t]=u|i,i=a>>>26-o}i&&(this.words[t]=i,this.length++)}if(0!==n){for(t=this.length-1;t>=0;t--)this.words[t+n]=this.words[t];for(t=0;t<n;t++)this.words[t]=0;this.length+=n}return this._strip()},n.prototype.ishln=function(e){return r(0===this.negative),this.iushln(e)},n.prototype.iushrn=function(e,t,o){var n;r("number"==typeof e&&e>=0),n=t?(t-t%26)/26:0;var s=e%26,i=Math.min((e-s)/26,this.length),a=67108863^67108863>>>s<<s,u=o;if(n-=i,n=Math.max(0,n),u){for(var c=0;c<i;c++)u.words[c]=this.words[c];u.length=i}if(0===i);else if(this.length>i)for(this.length-=i,c=0;c<this.length;c++)this.words[c]=this.words[c+i];else this.words[0]=0,this.length=1;var l=0;for(c=this.length-1;c>=0&&(0!==l||c>=n);c--){var d=0|this.words[c];this.words[c]=l<<26-s|d>>>s,l=d&a}return u&&0!==l&&(u.words[u.length++]=l),0===this.length&&(this.words[0]=0,this.length=1),this._strip()},n.prototype.ishrn=function(e,t,o){return r(0===this.negative),this.iushrn(e,t,o)},n.prototype.shln=function(e){return this.clone().ishln(e)},n.prototype.ushln=function(e){return this.clone().iushln(e)},n.prototype.shrn=function(e){return this.clone().ishrn(e)},n.prototype.ushrn=function(e){return this.clone().iushrn(e)},n.prototype.testn=function(e){r("number"==typeof e&&e>=0);var t=e%26,o=(e-t)/26,n=1<<t;return this.length<=o?0:!!(this.words[o]&n)},n.prototype.imaskn=function(e){r("number"==typeof e&&e>=0);var t=e%26,o=(e-t)/26;if(r(0===this.negative,"imaskn works only with positive numbers"),this.length<=o)return this;if(0!==t&&o++,this.length=Math.min(o,this.length),0!==t){var n=67108863^67108863>>>t<<t;this.words[this.length-1]&=n}return this._strip()},n.prototype.maskn=function(e){return this.clone().imaskn(e)},n.prototype.iaddn=function(e){return r("number"==typeof e),r(e<67108864),e<0?this.isubn(-e):0!==this.negative?1===this.length&&(0|this.words[0])<=e?(this.words[0]=e-(0|this.words[0]),this.negative=0,this):(this.negative=0,this.isubn(e),this.negative=1,this):this._iaddn(e)},n.prototype._iaddn=function(e){this.words[0]+=e;for(var t=0;t<this.length&&this.words[t]>=67108864;t++)this.words[t]-=67108864,t===this.length-1?this.words[t+1]=1:this.words[t+1]++;return this.length=Math.max(this.length,t+1),this},n.prototype.isubn=function(e){if(r("number"==typeof e),r(e<67108864),e<0)return this.iaddn(-e);if(0!==this.negative)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var t=0;t<this.length&&this.words[t]<0;t++)this.words[t]+=67108864,this.words[t+1]-=1;return this._strip()},n.prototype.addn=function(e){return this.clone().iaddn(e)},n.prototype.subn=function(e){return this.clone().isubn(e)},n.prototype.iabs=function(){return this.negative=0,this},n.prototype.abs=function(){return this.clone().iabs()},n.prototype._ishlnsubmul=function(e,t,o){var n,s,i=e.length+o;this._expand(i);var a=0;for(n=0;n<e.length;n++){s=(0|this.words[n+o])+a;var u=(0|e.words[n])*t;a=((s-=67108863&u)>>26)-(u/67108864|0),this.words[n+o]=67108863&s}for(;n<this.length-o;n++)a=(s=(0|this.words[n+o])+a)>>26,this.words[n+o]=67108863&s;if(0===a)return this._strip();for(r(-1===a),a=0,n=0;n<this.length;n++)a=(s=-(0|this.words[n])+a)>>26,this.words[n]=67108863&s;return this.negative=1,this._strip()},n.prototype._wordDiv=function(e,t){var r=(this.length,e.length),o=this.clone(),s=e,i=0|s.words[s.length-1];0!=(r=26-this._countBits(i))&&(s=s.ushln(r),o.iushln(r),i=0|s.words[s.length-1]);var a,u=o.length-s.length;if("mod"!==t){(a=new n(null)).length=u+1,a.words=new Array(a.length);for(var c=0;c<a.length;c++)a.words[c]=0}var l=o.clone()._ishlnsubmul(s,1,u);0===l.negative&&(o=l,a&&(a.words[u]=1));for(var d=u-1;d>=0;d--){var h=67108864*(0|o.words[s.length+d])+(0|o.words[s.length+d-1]);for(h=Math.min(h/i|0,67108863),o._ishlnsubmul(s,h,d);0!==o.negative;)h--,o.negative=0,o._ishlnsubmul(s,1,d),o.isZero()||(o.negative^=1);a&&(a.words[d]=h)}return a&&a._strip(),o._strip(),"div"!==t&&0!==r&&o.iushrn(r),{div:a||null,mod:o}},n.prototype.divmod=function(e,t,o){return r(!e.isZero()),this.isZero()?{div:new n(0),mod:new n(0)}:0!==this.negative&&0===e.negative?(a=this.neg().divmod(e,t),"mod"!==t&&(s=a.div.neg()),"div"!==t&&(i=a.mod.neg(),o&&0!==i.negative&&i.iadd(e)),{div:s,mod:i}):0===this.negative&&0!==e.negative?(a=this.divmod(e.neg(),t),"mod"!==t&&(s=a.div.neg()),{div:s,mod:a.mod}):0!=(this.negative&e.negative)?(a=this.neg().divmod(e.neg(),t),"div"!==t&&(i=a.mod.neg(),o&&0!==i.negative&&i.isub(e)),{div:a.div,mod:i}):e.length>this.length||this.cmp(e)<0?{div:new n(0),mod:this}:1===e.length?"div"===t?{div:this.divn(e.words[0]),mod:null}:"mod"===t?{div:null,mod:new n(this.modrn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new n(this.modrn(e.words[0]))}:this._wordDiv(e,t);var s,i,a},n.prototype.div=function(e){return this.divmod(e,"div",0).div},n.prototype.mod=function(e){return this.divmod(e,"mod",0).mod},n.prototype.umod=function(e){return this.divmod(e,"mod",1).mod},n.prototype.divRound=function(e){var t=this.divmod(e);if(t.mod.isZero())return t.div;var r=0!==t.div.negative?t.mod.isub(e):t.mod,o=e.ushrn(1),n=e.andln(1),s=r.cmp(o);return s<0||1===n&&0===s?t.div:0!==t.div.negative?t.div.isubn(1):t.div.iaddn(1)},n.prototype.modrn=function(e){var t=e<0;t&&(e=-e),r(e<=67108863);for(var o=(1<<26)%e,n=0,s=this.length-1;s>=0;s--)n=(o*n+(0|this.words[s]))%e;return t?-n:n},n.prototype.modn=function(e){return this.modrn(e)},n.prototype.idivn=function(e){var t=e<0;t&&(e=-e),r(e<=67108863);for(var o=0,n=this.length-1;n>=0;n--){var s=(0|this.words[n])+67108864*o;this.words[n]=s/e|0,o=s%e}return this._strip(),t?this.ineg():this},n.prototype.divn=function(e){return this.clone().idivn(e)},n.prototype.egcd=function(e){r(0===e.negative),r(!e.isZero());var t=this,o=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var s=new n(1),i=new n(0),a=new n(0),u=new n(1),c=0;t.isEven()&&o.isEven();)t.iushrn(1),o.iushrn(1),++c;for(var l=o.clone(),d=t.clone();!t.isZero();){for(var h=0,p=1;0==(t.words[0]&p)&&h<26;++h,p<<=1);if(h>0)for(t.iushrn(h);h-- >0;)(s.isOdd()||i.isOdd())&&(s.iadd(l),i.isub(d)),s.iushrn(1),i.iushrn(1);for(var m=0,f=1;0==(o.words[0]&f)&&m<26;++m,f<<=1);if(m>0)for(o.iushrn(m);m-- >0;)(a.isOdd()||u.isOdd())&&(a.iadd(l),u.isub(d)),a.iushrn(1),u.iushrn(1);t.cmp(o)>=0?(t.isub(o),s.isub(a),i.isub(u)):(o.isub(t),a.isub(s),u.isub(i))}return{a:a,b:u,gcd:o.iushln(c)}},n.prototype._invmp=function(e){r(0===e.negative),r(!e.isZero());var t=this,o=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var s,i=new n(1),a=new n(0),u=o.clone();t.cmpn(1)>0&&o.cmpn(1)>0;){for(var c=0,l=1;0==(t.words[0]&l)&&c<26;++c,l<<=1);if(c>0)for(t.iushrn(c);c-- >0;)i.isOdd()&&i.iadd(u),i.iushrn(1);for(var d=0,h=1;0==(o.words[0]&h)&&d<26;++d,h<<=1);if(d>0)for(o.iushrn(d);d-- >0;)a.isOdd()&&a.iadd(u),a.iushrn(1);t.cmp(o)>=0?(t.isub(o),i.isub(a)):(o.isub(t),a.isub(i))}return(s=0===t.cmpn(1)?i:a).cmpn(0)<0&&s.iadd(e),s},n.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var t=this.clone(),r=e.clone();t.negative=0,r.negative=0;for(var o=0;t.isEven()&&r.isEven();o++)t.iushrn(1),r.iushrn(1);for(;;){for(;t.isEven();)t.iushrn(1);for(;r.isEven();)r.iushrn(1);var n=t.cmp(r);if(n<0){var s=t;t=r,r=s}else if(0===n||0===r.cmpn(1))break;t.isub(r)}return r.iushln(o)},n.prototype.invm=function(e){return this.egcd(e).a.umod(e)},n.prototype.isEven=function(){return 0==(1&this.words[0])},n.prototype.isOdd=function(){return 1==(1&this.words[0])},n.prototype.andln=function(e){return this.words[0]&e},n.prototype.bincn=function(e){r("number"==typeof e);var t=e%26,o=(e-t)/26,n=1<<t;if(this.length<=o)return this._expand(o+1),this.words[o]|=n,this;for(var s=n,i=o;0!==s&&i<this.length;i++){var a=0|this.words[i];s=(a+=s)>>>26,a&=67108863,this.words[i]=a}return 0!==s&&(this.words[i]=s,this.length++),this},n.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},n.prototype.cmpn=function(e){var t,o=e<0;if(0!==this.negative&&!o)return-1;if(0===this.negative&&o)return 1;if(this._strip(),this.length>1)t=1;else{o&&(e=-e),r(e<=67108863,"Number is too big");var n=0|this.words[0];t=n===e?0:n<e?-1:1}return 0!==this.negative?0|-t:t},n.prototype.cmp=function(e){if(0!==this.negative&&0===e.negative)return-1;if(0===this.negative&&0!==e.negative)return 1;var t=this.ucmp(e);return 0!==this.negative?0|-t:t},n.prototype.ucmp=function(e){if(this.length>e.length)return 1;if(this.length<e.length)return-1;for(var t=0,r=this.length-1;r>=0;r--){var o=0|this.words[r],n=0|e.words[r];if(o!==n){o<n?t=-1:o>n&&(t=1);break}}return t},n.prototype.gtn=function(e){return 1===this.cmpn(e)},n.prototype.gt=function(e){return 1===this.cmp(e)},n.prototype.gten=function(e){return this.cmpn(e)>=0},n.prototype.gte=function(e){return this.cmp(e)>=0},n.prototype.ltn=function(e){return-1===this.cmpn(e)},n.prototype.lt=function(e){return-1===this.cmp(e)},n.prototype.lten=function(e){return this.cmpn(e)<=0},n.prototype.lte=function(e){return this.cmp(e)<=0},n.prototype.eqn=function(e){return 0===this.cmpn(e)},n.prototype.eq=function(e){return 0===this.cmp(e)},n.red=function(e){return new A(e)},n.prototype.toRed=function(e){return r(!this.red,"Already a number in reduction context"),r(0===this.negative,"red works only with positives"),e.convertTo(this)._forceRed(e)},n.prototype.fromRed=function(){return r(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},n.prototype._forceRed=function(e){return this.red=e,this},n.prototype.forceRed=function(e){return r(!this.red,"Already a number in reduction context"),this._forceRed(e)},n.prototype.redAdd=function(e){return r(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},n.prototype.redIAdd=function(e){return r(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},n.prototype.redSub=function(e){return r(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},n.prototype.redISub=function(e){return r(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},n.prototype.redShl=function(e){return r(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},n.prototype.redMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},n.prototype.redIMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},n.prototype.redSqr=function(){return r(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},n.prototype.redISqr=function(){return r(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},n.prototype.redSqrt=function(){return r(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},n.prototype.redInvm=function(){return r(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},n.prototype.redNeg=function(){return r(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},n.prototype.redPow=function(e){return r(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var w={k256:null,p224:null,p192:null,p25519:null};function v(e,t){this.name=e,this.p=new n(t,16),this.n=this.p.bitLength(),this.k=new n(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function x(){v.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function b(){v.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function I(){v.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function E(){v.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function A(e){if("string"==typeof e){var t=n._prime(e);this.m=t.p,this.prime=t}else r(e.gtn(1),"modulus must be greater than 1"),this.m=e,this.prime=null}function T(e){A.call(this,e),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new n(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}v.prototype._tmp=function(){var e=new n(null);return e.words=new Array(Math.ceil(this.n/13)),e},v.prototype.ireduce=function(e){var t,r=e;do{this.split(r,this.tmp),t=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(t>this.n);var o=t<this.n?-1:r.ucmp(this.p);return 0===o?(r.words[0]=0,r.length=1):o>0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},v.prototype.split=function(e,t){e.iushrn(this.n,0,t)},v.prototype.imulK=function(e){return e.imul(this.k)},o(x,v),x.prototype.split=function(e,t){for(var r=4194303,o=Math.min(e.length,9),n=0;n<o;n++)t.words[n]=e.words[n];if(t.length=o,e.length<=9)return e.words[0]=0,void(e.length=1);var s=e.words[9];for(t.words[t.length++]=s&r,n=10;n<e.length;n++){var i=0|e.words[n];e.words[n-10]=(i&r)<<4|s>>>22,s=i}s>>>=22,e.words[n-10]=s,0===s&&e.length>10?e.length-=10:e.length-=9},x.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var t=0,r=0;r<e.length;r++){var o=0|e.words[r];t+=977*o,e.words[r]=67108863&t,t=64*o+(t/67108864|0)}return 0===e.words[e.length-1]&&(e.length--,0===e.words[e.length-1]&&e.length--),e},o(b,v),o(I,v),o(E,v),E.prototype.imulK=function(e){for(var t=0,r=0;r<e.length;r++){var o=19*(0|e.words[r])+t,n=67108863&o;o>>>=26,e.words[r]=n,t=o}return 0!==t&&(e.words[e.length++]=t),e},n._prime=function(e){if(w[e])return w[e];var t;if("k256"===e)t=new x;else if("p224"===e)t=new b;else if("p192"===e)t=new I;else{if("p25519"!==e)throw new Error("Unknown prime "+e);t=new E}return w[e]=t,t},A.prototype._verify1=function(e){r(0===e.negative,"red works only with positives"),r(e.red,"red works only with red numbers")},A.prototype._verify2=function(e,t){r(0==(e.negative|t.negative),"red works only with positives"),r(e.red&&e.red===t.red,"red works only with red numbers")},A.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):(c(e,e.umod(this.m)._forceRed(this)),e)},A.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},A.prototype.add=function(e,t){this._verify2(e,t);var r=e.add(t);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},A.prototype.iadd=function(e,t){this._verify2(e,t);var r=e.iadd(t);return r.cmp(this.m)>=0&&r.isub(this.m),r},A.prototype.sub=function(e,t){this._verify2(e,t);var r=e.sub(t);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},A.prototype.isub=function(e,t){this._verify2(e,t);var r=e.isub(t);return r.cmpn(0)<0&&r.iadd(this.m),r},A.prototype.shl=function(e,t){return this._verify1(e),this.imod(e.ushln(t))},A.prototype.imul=function(e,t){return this._verify2(e,t),this.imod(e.imul(t))},A.prototype.mul=function(e,t){return this._verify2(e,t),this.imod(e.mul(t))},A.prototype.isqr=function(e){return this.imul(e,e.clone())},A.prototype.sqr=function(e){return this.mul(e,e)},A.prototype.sqrt=function(e){if(e.isZero())return e.clone();var t=this.m.andln(3);if(r(t%2==1),3===t){var o=this.m.add(new n(1)).iushrn(2);return this.pow(e,o)}for(var s=this.m.subn(1),i=0;!s.isZero()&&0===s.andln(1);)i++,s.iushrn(1);r(!s.isZero());var a=new n(1).toRed(this),u=a.redNeg(),c=this.m.subn(1).iushrn(1),l=this.m.bitLength();for(l=new n(2*l*l).toRed(this);0!==this.pow(l,c).cmp(u);)l.redIAdd(u);for(var d=this.pow(l,s),h=this.pow(e,s.addn(1).iushrn(1)),p=this.pow(e,s),m=i;0!==p.cmp(a);){for(var f=p,y=0;0!==f.cmp(a);y++)f=f.redSqr();r(y<m);var g=this.pow(d,new n(1).iushln(m-y-1));h=h.redMul(g),d=g.redSqr(),p=p.redMul(d),m=y}return h},A.prototype.invm=function(e){var t=e._invmp(this.m);return 0!==t.negative?(t.negative=0,this.imod(t).redNeg()):this.imod(t)},A.prototype.pow=function(e,t){if(t.isZero())return new n(1).toRed(this);if(0===t.cmpn(1))return e.clone();var r=new Array(16);r[0]=new n(1).toRed(this),r[1]=e;for(var o=2;o<r.length;o++)r[o]=this.mul(r[o-1],e);var s=r[0],i=0,a=0,u=t.bitLength()%26;for(0===u&&(u=26),o=t.length-1;o>=0;o--){for(var c=t.words[o],l=u-1;l>=0;l--){var d=c>>l&1;s!==r[0]&&(s=this.sqr(s)),0!==d||0!==i?(i<<=1,i|=d,(4==++a||0===o&&0===l)&&(s=this.mul(s,r[i]),a=0,i=0)):a=0}u=26}return s},A.prototype.convertTo=function(e){var t=e.umod(this.m);return t===e?t.clone():t},A.prototype.convertFrom=function(e){var t=e.clone();return t.red=null,t},n.mont=function(e){return new T(e)},o(T,A),T.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},T.prototype.convertFrom=function(e){var t=this.imod(e.mul(this.rinv));return t.red=null,t},T.prototype.imul=function(e,t){if(e.isZero()||t.isZero())return e.words[0]=0,e.length=1,e;var r=e.imul(t),o=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),n=r.isub(o).iushrn(this.shift),s=n;return n.cmp(this.m)>=0?s=n.isub(this.m):n.cmpn(0)<0&&(s=n.iadd(this.m)),s._forceRed(this)},T.prototype.mul=function(e,t){if(e.isZero()||t.isZero())return new n(0)._forceRed(this);var r=e.mul(t),o=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),s=r.isub(o).iushrn(this.shift),i=s;return s.cmp(this.m)>=0?i=s.isub(this.m):s.cmpn(0)<0&&(i=s.iadd(this.m)),i._forceRed(this)},T.prototype.invm=function(e){return this.imod(e._invmp(this.m).mul(this.r2))._forceRed(this)}}(0,r);var F,K,H=q.exports,W=o(H);!function(t){var o=r&&r.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:1}),t.map=t.array=t.rustEnum=t.str=t.vecU8=t.tagged=t.vec=t.bool=t.option=t.publicKey=t.i256=t.u256=t.i128=t.u128=t.i64=t.u64=t.struct=t.f64=t.f32=t.i32=t.u32=t.i16=t.u16=t.i8=t.u8=void 0;const n=s,i=e,a=o(H);var u=s;Object.defineProperty(t,"u8",{enumerable:1,get:function(){return u.u8}}),Object.defineProperty(t,"i8",{enumerable:1,get:function(){return u.s8}}),Object.defineProperty(t,"u16",{enumerable:1,get:function(){return u.u16}}),Object.defineProperty(t,"i16",{enumerable:1,get:function(){return u.s16}}),Object.defineProperty(t,"u32",{enumerable:1,get:function(){return u.u32}}),Object.defineProperty(t,"i32",{enumerable:1,get:function(){return u.s32}}),Object.defineProperty(t,"f32",{enumerable:1,get:function(){return u.f32}}),Object.defineProperty(t,"f64",{enumerable:1,get:function(){return u.f64}}),Object.defineProperty(t,"struct",{enumerable:1,get:function(){return u.struct}});class c extends n.Layout{constructor(e,t,r){super(e,r),this.blob=(0,n.blob)(e),this.signed=t}decode(e,t=0){const r=new a.default(this.blob.decode(e,t),10,"le");return this.signed?r.fromTwos(8*this.span).clone():r}encode(e,t,r=0){return this.signed&&(e=e.toTwos(8*this.span)),this.blob.encode(e.toArrayLike(Buffer,"le",this.span),t,r)}}function l(e){return new c(8,0,e)}t.u64=l,t.i64=function(e){return new c(8,1,e)},t.u128=function(e){return new c(16,0,e)},t.i128=function(e){return new c(16,1,e)},t.u256=function(e){return new c(32,0,e)},t.i256=function(e){return new c(32,1,e)};class d extends n.Layout{constructor(e,t,r,o){super(e.span,o),this.layout=e,this.decoder=t,this.encoder=r}decode(e,t){return this.decoder(this.layout.decode(e,t))}encode(e,t,r){return this.layout.encode(this.encoder(e),t,r)}getSpan(e,t){return this.layout.getSpan(e,t)}}t.publicKey=function(e){return new d((0,n.blob)(32),(e=>new i.PublicKey(e)),(e=>e.toBuffer()),e)};class h extends n.Layout{constructor(e,t){super(-1,t),this.layout=e,this.discriminator=(0,n.u8)()}encode(e,t,r=0){return null==e?this.discriminator.encode(0,t,r):(this.discriminator.encode(1,t,r),this.layout.encode(e,t,r+1)+1)}decode(e,t=0){const r=this.discriminator.decode(e,t);if(0===r)return null;if(1===r)return this.layout.decode(e,t+1);throw new Error("Invalid option "+this.property)}getSpan(e,t=0){const r=this.discriminator.decode(e,t);if(0===r)return 1;if(1===r)return this.layout.getSpan(e,t+1)+1;throw new Error("Invalid option "+this.property)}}function p(e){if(0===e)return 0;if(1===e)return 1;throw new Error("Invalid bool: "+e)}function m(e){return e?1:0}function f(e){const t=(0,n.u32)("length"),r=(0,n.struct)([t,(0,n.blob)((0,n.offset)(t,-t.span),"data")]);return new d(r,(({data:e})=>e),(e=>({data:e})),e)}t.option=function(e,t){return new h(e,t)},t.bool=function(e){return new d((0,n.u8)(),p,m,e)},t.vec=function(e,t){const r=(0,n.u32)("length"),o=(0,n.struct)([r,(0,n.seq)(e,(0,n.offset)(r,-r.span),"values")]);return new d(o,(({values:e})=>e),(e=>({values:e})),t)},t.tagged=function(e,t,r){const o=(0,n.struct)([l("tag"),t.replicate("data")]);return new d(o,(function({tag:t,data:r}){if(!t.eq(e))throw new Error("Invalid tag, expected: "+e.toString("hex")+", got: "+t.toString("hex"));return r}),(t=>({tag:e,data:t})),r)},t.vecU8=f,t.str=function(e){return new d(f(),(e=>e.toString("utf-8")),(e=>Buffer.from(e,"utf-8")),e)},t.rustEnum=function(e,t,r){const o=(0,n.union)(null!=r?r:(0,n.u8)(),t);return e.forEach(((e,t)=>o.addVariant(t,e,e.property))),o},t.array=function(e,t,r){const o=(0,n.struct)([(0,n.seq)(e,t,"values")]);return new d(o,(({values:e})=>e),(e=>({values:e})),r)};class y extends n.Layout{constructor(e,t,r){super(e.span+t.span,r),this.keyLayout=e,this.valueLayout=t}decode(e,t){return t=t||0,[this.keyLayout.decode(e,t),this.valueLayout.decode(e,t+this.keyLayout.getSpan(e,t))]}encode(e,t,r){r=r||0;const o=this.keyLayout.encode(e[0],t,r);return o+this.valueLayout.encode(e[1],t,r+o)}getSpan(e,t){return this.keyLayout.getSpan(e,t)+this.valueLayout.getSpan(e,t)}}t.map=function(e,t,r){const o=(0,n.u32)("length"),s=(0,n.struct)([o,(0,n.seq)(new y(e,t),(0,n.offset)(o,-o.span),"values")]);return new d(s,(({values:e})=>new Map(e)),(e=>({values:Array.from(e.entries())})),r)}}(n),exports.TreeType=void 0,(F=exports.TreeType||(exports.TreeType={}))[F.StateV1=1]="StateV1",F[F.AddressV1=2]="AddressV1",F[F.StateV2=3]="StateV2",F[F.AddressV2=4]="AddressV2",exports.VERSION=void 0,(K=exports.VERSION||(exports.VERSION={})).V1="V1",K.V2="V2";const $={version:'"V2"',isV2:()=>"V2"===$.version.replace(/['"]/g,"").toUpperCase(),isBeta:()=>{var e;if("undefined"!=typeof process&&(null===(e=process.env)||void 0===e?void 0:e.LIGHT_PROTOCOL_BETA)){const e=process.env.LIGHT_PROTOCOL_BETA.toLowerCase();return"true"===e||"1"===e}return 0}},j="Interface methods require beta feature flag. These features are not yet deployed on mainnet (only localnet/devnet). Set LIGHT_PROTOCOL_BETA=true to enable.";function z(){if(!$.isV2())throw new Error("Interface methods require V2. Set LIGHT_PROTOCOL_VERSION=V2.");if(!$.isBeta())throw new Error(j)}const Z=e=>$.isV2()?`${e}V2`:e,G=new W("21888242871839275222246405745257275088548364400416034343698204186575808495617"),Q=new W("452312848583266388373324160190187140051835877600158453279131187530910662655"),J=[2,64,66,15,0],X=t.Buffer.from([26,16,169,7,21,202,242,25]),Y=t.Buffer.from([49,212,191,129,39,194,43,196]),ee=t.Buffer.from([86,47,163,166,21,223,92,8]),te=t.Buffer.from([228,34,128,84,47,139,86,240]),re=t.Buffer.from([180,143,159,153,35,46,248,163]),oe="noopb9bkMVfRPU8AsbpTUg8AQkHtKwMYZiFUjNRtMmV",ne="SySTEM1eSU2p4BGQfQpimFEWWSC1XDFeun3Nqzz3rT7",se="compr6CUsB5m2jS4Y3831ztGSTnDpnKJTKS95d64XVq",ie=()=>new e.PublicKey("35hkDgaAKwMCaxRz2ocSZ6NaUrtKkyNqU6c4RV3tYJRh"),ae=()=>e.PublicKey.findProgramAddressSync([t.Buffer.from("cpi_authority")],new e.PublicKey(ne))[0],ue=()=>({registeredProgramPda:new e.PublicKey(ie()),noopProgram:new e.PublicKey(oe),accountCompressionProgram:new e.PublicKey(se),accountCompressionAuthority:new e.PublicKey(ae()),cpiSignatureAccount:null}),ce=()=>({mainnet:[{stateTreeLookupTable:new e.PublicKey(ge),nullifyLookupTable:new e.PublicKey(we)}],devnet:[{stateTreeLookupTable:new e.PublicKey(ve),nullifyLookupTable:new e.PublicKey(xe)}]}),le=e=>e.includes("localhost")||e.includes("127.0.0.1"),de=()=>pe(),he=()=>$.isV2()?pe():{tree:new e.PublicKey(Ae),queue:new e.PublicKey(Te),cpiContext:void 0,treeType:exports.TreeType.AddressV1,nextTreeInfo:null},pe=()=>({tree:new e.PublicKey(We),queue:new e.PublicKey(We),cpiContext:void 0,treeType:exports.TreeType.AddressV2,nextTreeInfo:null}),me=()=>({nullifierQueue:new e.PublicKey(be),merkleTree:new e.PublicKey(Ee),merkleTreeHeight:Ze,addressTree:new e.PublicKey(Ae),addressQueue:new e.PublicKey(Te)}),fe=new e.PublicKey("cTokenmWW8bLPjZEBAUgYy3zKxQZW6VKi7bqNFEVv3m"),ye=fe,ge="7i86eQs3GSqHjN47WdWLTCGMW6gde1q96G2EVnUyK2st",we="H9QD4u1fG7KmkAzn2tDXhheushxFe1EcrjGGyEFXeMqT",ve="Dk9mNkbiZXJZ4By8DfSP6HEE4ojZzRvucwpawLeuwq8q",xe="AXbHzp1NgjLvpfnD6JRTTovXZ7APUCdtWZFCRr5tCxse",be="nfq1NvQDJ2GEgnS8zt9prAe8rjjpAW1zFkrvZoBR148",Ie="cpi1uHzrEhBG733DoEJNgHCyRS3XmmyVNZx5fonubE4",Ee="smt1NamzXdq4AMqS2fS2F1i5KTYPZRhoHgWx38d8WsT",Ae="amt1Ayt45jfbdw5YSo7iz6WZxUmnZsQTYXy82hVwyC2",Te="aq1S9z4reTSQAdgWHGD2zDaS39sjGrAxbR31vxJ2F4F",Me="smt2rJAFdyJJupwMKAqTNAJwvjhmiZ4JYGZmbVRw1Ho",Se="nfq2hgS7NYemXsFaFUCe3EMXSDSfnZnAe27jC6aPP1X",Ce="cpi2cdhkH5roePvcudTgUL8ppEBfTay1desGh8G8QxK",ke="bmt1LryLZUMmF7ZtqESaw7wifBXLfXHQYoE4GAmrahU",_e="oq1na8gojfdUhsfCpyjNt6h4JaDWtHf1yQj4koBWfto",Pe="cpi15BoVPKgEPw5o8wc2T816GE7b378nMXnhH3Xbq4y",Oe="bmt2UxoBxB9xWev4BkLvkGdapsz6sZGkzViPNph7VFi",Le="oq2UkeMsJLfXt2QHzim242SUi3nvjJs8Pn7Eac9H9vg",Ne="cpi2yGapXUR3As5SjnHBAVvmApNiLsbeZpF3euWnW6B",Be="bmt3ccLd4bqSVZVeCJnH1F6C8jNygAhaDfxDwePyyGb",Re="oq3AxjekBWgo64gpauB6QtuZNesuv19xrhaC1ZM1THQ",De="cpi3mbwMpSX8FAGMZVP85AwxqCaQMfEk9Em1v8QK9Rf",Ve="bmt4d3p1a4YQgk9PeZv5s4DBUmbF5NxqYpk9HGjQsd8",Ue="oq4ypwvVGzCUMoiKKHWh4S1SgZJ9vCvKpcz6RT6A8dq",qe="cpi4yyPDc4bCgHAnsenunGA8Y77j3XEDyjgfyCKgcoc",Fe="bmt5yU97jC88YXTuSukYHa8Z5Bi2ZDUtmzfkDTA2mG2",Ke="oq5oh5ZR3yGomuQgFduNDzjtGvVWfDRGLuDVjv9a96P",He="cpi5ZTjdgYpZ1Xr7B1cMLLUE81oTtJbNNAyKary2nV6",We="amt2kaJA14v3urZbZvnc5v2np8jqvc4Z8zDep5wbtzx",$e=ke,je=_e,ze=()=>{const t=[[ke,_e,Pe],[Oe,Le,Ne],[Be,Re,De],[Ve,Ue,qe],[Fe,Ke,He]],r=We,o=[[Ee,be,Ie],[Me,Se,Ce]].map((([t,r,o])=>({tree:new e.PublicKey(t),queue:new e.PublicKey(r),cpiContext:new e.PublicKey(o),treeType:exports.TreeType.StateV1,nextTreeInfo:null}))),n=t.map((([t,r,o])=>({tree:new e.PublicKey(t),queue:new e.PublicKey(r),cpiContext:new e.PublicKey(o),treeType:exports.TreeType.StateV2,nextTreeInfo:null}))),s={tree:new e.PublicKey(r),queue:new e.PublicKey(r),cpiContext:e.PublicKey.default,treeType:exports.TreeType.AddressV2,nextTreeInfo:null};return $.isV2()?[...o,...n,s]:o},Ze=26,Ge=new W(Math.floor(2**Ze*.95)),Qe=$.isV2()?new W(1):new W(300),Je=($.isV2(),new W(392)),Xe=new W(5e3),Ye=new W(5e3),et=new W(1e4);var tt=function(e){const t=new Uint8Array(256);for(let e=0;e<t.length;e++)t[e]=255;for(let r=0;r<58;r++){const o=e.charAt(r),n=o.charCodeAt(0);if(255!==t[n])throw new TypeError(o+" is ambiguous");t[n]=r}const r=e.charAt(0),o=Math.log(58)/Math.log(256),n=Math.log(256)/Math.log(58);function s(e){if("string"!=typeof e)throw new TypeError("Expected String");if(0===e.length)return new Uint8Array;let n=0,s=0,i=0;for(;e[n]===r;)s++,n++;const a=(e.length-n)*o+1>>>0,u=new Uint8Array(a);for(;e[n];){let r=t[e.charCodeAt(n)];if(255===r)return;let o=0;for(let e=a-1;(0!==r||o<i)&&-1!==e;e--,o++)r+=58*u[e]>>>0,u[e]=r%256>>>0,r=r/256>>>0;if(0!==r)throw new Error("Non-zero carry");i=o,n++}let c=a-i;for(;c!==a&&0===u[c];)c++;const l=new Uint8Array(s+(a-c));let d=s;for(;c!==a;)l[d++]=u[c++];return l}return{encode:function(t){if(t instanceof Uint8Array||(ArrayBuffer.isView(t)?t=new Uint8Array(t.buffer,t.byteOffset,t.byteLength):Array.isArray(t)&&(t=Uint8Array.from(t))),!(t instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(0===t.length)return"";let o=0,s=0,i=0;const a=t.length;for(;i!==a&&0===t[i];)i++,o++;const u=(a-i)*n+1>>>0,c=new Uint8Array(u);for(;i!==a;){let e=t[i],r=0;for(let t=u-1;(0!==e||r<s)&&-1!==t;t--,r++)e+=256*c[t]>>>0,c[t]=e%58>>>0,e=e/58>>>0;if(0!==e)throw new Error("Non-zero carry");s=r,i++}let l=u-s;for(;l!==u&&0===c[l];)l++;let d=r.repeat(o);for(;l<u;++l)d+=e.charAt(c[l]);return d},decodeUnsafe:s,decode:function(e){const t=s(e);if(t)return t;throw new Error("Non-base58 character")}}}("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz");const rt=(e,t)=>{if("base58"===t){if("string"!=typeof e)throw new Error("Must be a base58 string");return rt(tt.decode(e))}return function(e){if(e.gte(G))throw new Error("Value is too large. Max <254 bits");return e}(new W(e,t))};function ot(e){const r=rt(e).toArrayLike(t.Buffer,void 0,32);return tt.encode(new Uint8Array(r))}const nt=(e,r,o)=>e instanceof Uint8Array&&!(e instanceof t.Buffer)?new W(t.Buffer.from(e),r,o):new W(e,r,o),st=(e,t,r,o)=>({owner:e,lamports:null!=t?t:new W(0),address:null!=o?o:null,data:null!=r?r:null}),it=(e,t,r,o,n)=>Object.assign(Object.assign({},e),{owner:t,lamports:null!=r?r:new W(0),address:null!=n?n:null,data:null!=o?o:null,readOnly:0}),at=(e,t,r,o=0)=>({treeInfo:e,hash:t,leafIndex:r,proveByIndex:o}),ut=n.struct([n.publicKey("owner"),n.u64("lamports"),n.option(n.array(n.u8(),32),"address"),n.option(n.struct([n.array(n.u8(),8,"discriminator"),n.vecU8("data"),n.array(n.u8(),32,"dataHash")]),"data")],"compressedAccount"),ct=n.struct([n.u8("merkleTreePubkeyIndex"),n.u8("queuePubkeyIndex"),n.u32("leafIndex"),n.bool("proveByIndex")],"merkleContext"),lt=n.struct([n.array(n.u8(),32,"seed"),n.u8("addressQueueAccountIndex"),n.u8("addressMerkleTreeAccountIndex"),n.u16("addressMerkleTreeRootIndex")],"newAddressParams"),dt=n.struct([n.option(n.struct([n.array(n.u8(),32,"a"),n.array(n.u8(),64,"b"),n.array(n.u8(),32,"c")]),"proof"),n.vec(n.struct([ut,ct,n.u16("rootIndex"),n.bool("readOnly")]),"inputCompressedAccountsWithMerkleContext"),n.vec(n.struct([ut,n.u8("merkleTreeIndex")]),"outputCompressedAccounts"),n.option(n.u64(),"relayFee"),n.vec(lt,"newAddressParams"),n.option(n.u64(),"compressOrDecompressLamports"),n.bool("isCompress")]);function ht(e){const r=t.Buffer.alloc(1e3),o=dt.encode(e,r),n=t.Buffer.from(new Uint8Array(r.slice(0,o))),s=t.Buffer.alloc(4);return s.writeUInt32LE(o,0),t.Buffer.concat([new Uint8Array(X),new Uint8Array(s),new Uint8Array(n)])}const pt=n.struct([n.option(n.struct([n.array(n.u8(),32,"a"),n.array(n.u8(),64,"b"),n.array(n.u8(),32,"c")]),"proof"),n.vec(lt,"newAddressParams"),n.vec(n.struct([ut,ct,n.u16("rootIndex"),n.bool("readOnly")]),"inputCompressedAccountsWithMerkleContext"),n.vec(n.struct([ut,n.u8("merkleTreeIndex")]),"outputCompressedAccounts"),n.option(n.u64(),"relayFee"),n.option(n.u64(),"compressOrDecompressLamports"),n.bool("isCompress"),n.option(n.struct([n.bool("set_context"),n.bool("first_set_context"),n.u8("cpi_context_account_index")]),"compressedCpiContext")]),mt=n.struct([n.array(n.u8(),32,"a"),n.array(n.u8(),64,"b"),n.array(n.u8(),32,"c")],"compressedProof"),ft=n.struct([n.bool("set_context"),n.bool("first_set_context"),n.u8("cpi_context_account_index")],"compressedCpiContext"),yt=n.struct([n.array(n.u8(),32,"seed"),n.u8("address_queue_account_index"),n.u8("address_merkle_tree_account_index"),n.u16("address_merkle_tree_root_index"),n.bool("assigned_to_account"),n.u8("assigned_account_index")],"newAddressParamsAssignedPacked"),gt=n.struct([n.u8("merkle_tree_pubkey_index"),n.u8("queue_pubkey_index"),n.u32("leaf_index"),n.bool("prove_by_index")],"packedMerkleContext"),wt=n.struct([n.array(n.u8(),8,"discriminator"),n.array(n.u8(),32,"data_hash"),gt,n.u16("root_index"),n.u64("lamports"),n.option(n.array(n.u8(),32),"address")],"inAccount"),vt=n.struct([n.array(n.u8(),32,"address"),n.u16("address_merkle_tree_root_index"),n.u8("address_merkle_tree_account_index")],"packedReadOnlyAddress"),xt=n.struct([n.array(n.u8(),32,"account_hash"),gt,n.u16("root_index")],"packedReadOnlyCompressedAccount"),bt=n.struct([n.u8("mode"),n.u8("bump"),n.publicKey("invoking_program_id"),n.u64("compress_or_decompress_lamports"),n.bool("is_compress"),n.bool("with_cpi_context"),n.bool("with_transaction_hash"),ft,n.option(mt,"proof"),n.vec(yt,"new_address_params"),n.vec(wt,"input_compressed_accounts"),n.vec(n.struct([ut,n.u8("merkleTreeIndex")]),"output_compressed_accounts"),n.vec(vt,"read_only_addresses"),n.vec(xt,"read_only_accounts")]);function It(e){return bt.decode(e.slice(ee.length))}function Et(e){return dt.decode(e.slice(X.length+4))}function At(e){return pt.decode(e.slice(Y.length+4))}const Tt=e=>{const t=mo.programId,{feePayer:r,authority:o,registeredProgramPda:n,noopProgram:s,accountCompressionAuthority:i,accountCompressionProgram:a,solPoolPda:u,decompressionRecipient:c,systemProgram:l}=e;return[{pubkey:r,isSigner:1,isWritable:1},{pubkey:o,isSigner:1,isWritable:0},{pubkey:n,isSigner:0,isWritable:0},{pubkey:s,isSigner:0,isWritable:0},{pubkey:i,isSigner:0,isWritable:0},{pubkey:a,isSigner:0,isWritable:0},{pubkey:null!=u?u:t,isSigner:0,isWritable:null!==u},{pubkey:null!=c?c:t,isSigner:0,isWritable:1},{pubkey:l,isSigner:0,isWritable:0}]},Mt=n.struct([n.vec(n.array(n.u8(),32),"inputCompressedAccountHashes"),n.vec(n.array(n.u8(),32),"outputCompressedAccountHashes"),n.vec(n.struct([n.struct([n.publicKey("owner"),n.u64("lamports"),n.option(n.array(n.u8(),32),"address"),n.option(n.struct([n.array(n.u8(),8,"discriminator"),n.vecU8("data"),n.array(n.u8(),32,"dataHash")]),"data")],"compressedAccount"),n.u8("merkleTreeIndex")]),"outputCompressedAccounts"),n.vec(n.u32(),"outputLeafIndices"),n.vec(n.struct([n.publicKey("tree_pubkey"),n.publicKey("queue_pubkey"),n.u64("tree_type"),n.u64("seq")]),"sequenceNumbers"),n.option(n.u64(),"relayFee"),n.bool("isCompress"),n.option(n.u64(),"compressOrDecompressLamports"),n.vec(n.publicKey(),"pubkeyArray"),n.option(n.vecU8(),"message")]);function St(e){return Mt.decode(e)}const Ct=n.struct([n.u8("is_invoked_by_program"),n.u8("bump"),n.u8("num_queues"),n.u8("num_output_queues"),n.u8("start_output_appends"),n.u8("num_address_queues"),n.array(n.u8(),32,"tx_hash")],"appendNullifyCreateAddressInputsMeta"),kt=n.struct([n.u8("index"),n.array(n.u8(),32,"leaf")],"appendLeavesInput"),_t=n.struct([n.array(n.u8(),32,"account_hash"),n.u32("leaf_index"),n.u8("prove_by_index"),n.u8("tree_index"),n.u8("queue_index")],"insertNullifierInput"),Pt=n.struct([n.array(n.u8(),32,"address"),n.u8("tree_index"),n.u8("queue_index")],"insertAddressInput"),Ot=n.struct([n.publicKey("tree_pubkey"),n.publicKey("queue_pubkey"),n.u64("tree_type"),n.u64("seq")],"merkleTreeSequenceNumber");function Lt(e){let t=0;const r=Ct.decode(e,t);t+=Ct.span;const o=e.readUInt8(t);t+=1;const s=[];for(let r=0;r<o;r++){const r=kt.decode(e,t);s.push(r),t+=kt.span}const i=e.readUInt8(t);t+=1;const a=[];for(let r=0;r<i;r++){const r=_t.decode(e,t);a.push(r),t+=_t.span}const u=e.readUInt8(t);t+=1;const c=[];for(let r=0;r<u;r++){const r=Pt.decode(e,t);c.push(r),t+=Pt.span}const l=e.readUInt8(t);t+=1;const d=[];for(let r=0;r<l;r++){const r=Ot.decode(e,t);d.push(r),t+=Ot.span}const h=e.readUInt8(t);t+=1;for(let r=0;r<h;r++)Ot.decode(e,t),t+=Ot.span;const p=e.readUInt8(t);t+=1;for(let r=0;r<p;r++)Ot.decode(e,t),t+=Ot.span;const m=e.readUInt8(t);t+=1;const f=[];for(let r=0;r<m;r++){const r=n.u32().decode(e,t);f.push(r),t+=4}return{meta:r,leaves:s,nullifiers:a,addresses:c,sequence_numbers:d,output_leaf_indices:f}}function Nt(r,o,n){const s=e=>Array.from(e instanceof t.Buffer?new Uint8Array(e):e);return{inputCompressedAccountHashes:r.nullifiers.map((e=>s(e.account_hash))),outputCompressedAccountHashes:r.leaves.map((e=>s(e.leaf))),outputCompressedAccounts:r.leaves.map(((r,o)=>{var i,a,u,c,l,d;return{compressedAccount:{owner:new e.PublicKey((null===(i=null==n?void 0:n.outputCompressedAccounts[o])||void 0===i?void 0:i.compressedAccount.owner)||e.PublicKey.default),lamports:nt((null===(a=null==n?void 0:n.outputCompressedAccounts[o])||void 0===a?void 0:a.compressedAccount.lamports)||0),address:null==n?void 0:n.outputCompressedAccounts[o].compressedAccount.address,data:(null===(u=null==n?void 0:n.outputCompressedAccounts[o])||void 0===u?void 0:u.compressedAccount.data)?{discriminator:s(t.Buffer.from(null===(c=n.outputCompressedAccounts[o].compressedAccount.data)||void 0===c?void 0:c.discriminator)),data:null!==(l=s(t.Buffer.from(new Uint8Array(n.outputCompressedAccounts[o].compressedAccount.data.data))))&&void 0!==l?l:[],dataHash:s(t.Buffer.from(null===(d=n.outputCompressedAccounts[o].compressedAccount.data)||void 0===d?void 0:d.dataHash))}:null},merkleTreeIndex:r.index}})),outputLeafIndices:r.output_leaf_indices,sequenceNumbers:r.sequence_numbers.map((e=>({tree_pubkey:e.tree_pubkey,queue_pubkey:e.queue_pubkey,tree_type:e.tree_type,seq:e.seq}))),pubkeyArray:o.slice(2).filter((t=>!t.equals(e.PublicKey.default))),isCompress:(null==n?void 0:n.isCompress)||0,relayFee:(null==n?void 0:n.relayFee)?nt(n.relayFee):null,compressOrDecompressLamports:(null==n?void 0:n.compressOrDecompressLamports)?nt(n.compressOrDecompressLamports):null,message:null}}function Bt(e,t){const r=e.findIndex((e=>e.equals(t)));return-1===r?(e.push(t),e.length-1):r}function Rt(e,t){return t<=0?[]:new Array(t).fill(e)}function Dt(e){return e.map((e=>({pubkey:e,isWritable:1,isSigner:0})))}function Vt(e,t,r,o,n=[]){const s=n.slice(),i=[],a=[];if(e.forEach(((e,r)=>{const o=Bt(s,e.treeInfo.tree),n=Bt(s,e.treeInfo.queue);i.push({compressedAccount:{owner:e.owner,lamports:e.lamports,address:e.address,data:e.data},merkleContext:{merkleTreePubkeyIndex:o,queuePubkeyIndex:n,leafIndex:e.leafIndex,proveByIndex:e.proveByIndex},rootIndex:t[r],readOnly:0})})),e.length>0&&o)throw new Error("Cannot specify both input accounts and outputStateTreeInfo");let u;if(e.length>0)u=e[0].treeInfo;else{if(!o)throw new Error("Neither input accounts nor outputStateTreeInfo are available");u=o}const c=u.nextTreeInfo||u;let l=c.tree;if(c.treeType===exports.TreeType.StateV2){if(!$.isV2())throw new Error("V2 trees are not supported yet");l=c.queue}const d=Rt(l,r.length);return r.forEach(((e,t)=>{const r=Bt(s,d[t]);a.push({compressedAccount:{owner:e.owner,lamports:e.lamports,address:e.address,data:e.data},merkleTreeIndex:r})})),{packedInputCompressedAccounts:i,packedOutputCompressedAccounts:a,remainingAccounts:s}}const Ut=e=>{if(e.lt(nt(0)))throw new Error("Insufficient balance for transfer")},qt=e=>{if(0===e.length)throw new Error("No accounts provided for validation");const t=e[0].owner;if(!e.every((e=>e.owner.equals(t))))throw new Error("All input accounts must have the same owner")},Ft=(e,t)=>{if(e>0&&t>0){if(8===e)throw new Error(`Invalid number of compressed accounts for proof: ${e}. Allowed numbers: ${[1,2,3,4].join(", ")}`);Wt(e,[1,2,3,4],"compressed accounts"),Ht(t)}else e>0?Kt(e):Ht(t)},Kt=e=>{Wt(e,[1,2,3,4,8],"compressed accounts")},Ht=e=>{Wt(e,[1,2],"new addresses")},Wt=(e,t,r)=>{if(!t.includes(e))throw new Error(`Invalid number of ${r}: ${e}. Allowed numbers: ${t.join(", ")}`)};function $t(e){if(!Number.isSafeInteger(e)||e<0)throw new Error(`positive integer expected, not ${e}`)}function jt(e,...t){if(!((r=e)instanceof Uint8Array||null!=r&&"object"==typeof r&&"Uint8Array"===r.constructor.name))throw new Error("Uint8Array expected");var r;if(t.length>0&&!t.includes(e.length))throw new Error(`Uint8Array expected of length ${t}, not of length=${e.length}`)}function zt(e,t=1){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}const Zt=BigInt(2**32-1),Gt=BigInt(32);function Qt(e,t=0){return t?{h:Number(e&Zt),l:Number(e>>Gt&Zt)}:{h:0|Number(e>>Gt&Zt),l:0|Number(e&Zt)}}function Jt(e,t=0){let r=new Uint32Array(e.length),o=new Uint32Array(e.length);for(let n=0;n<e.length;n++){const{h:s,l:i}=Qt(e[n],t);[r[n],o[n]]=[s,i]}return[r,o]}const Xt=68===new Uint8Array(new Uint32Array([287454020]).buffer)[0];function Yt(e){for(let r=0;r<e.length;r++)e[r]=(t=e[r])<<24&4278190080|t<<8&16711680|t>>>8&65280|t>>>24&255;var t}function er(e){return"string"==typeof e&&(e=function(e){if("string"!=typeof e)throw new Error("utf8ToBytes expected string, got "+typeof e);return new Uint8Array((new TextEncoder).encode(e))}(e)),jt(e),e}class tr{clone(){return this._cloneInto()}}const rr=[],or=[],nr=[],sr=BigInt(0),ir=BigInt(1),ar=BigInt(2),ur=BigInt(7),cr=BigInt(256),lr=BigInt(113);for(let e=0,t=ir,r=1,o=0;e<24;e++){[r,o]=[o,(2*r+3*o)%5],rr.push(2*(5*o+r)),or.push((e+1)*(e+2)/2%64);let n=sr;for(let e=0;e<7;e++)t=(t<<ir^(t>>ur)*lr)%cr,t&ar&&(n^=ir<<(ir<<BigInt(e))-ir);nr.push(n)}const[dr,hr]=Jt(nr,1),pr=(e,t,r)=>r>32?((e,t,r)=>t<<r-32|e>>>64-r)(e,t,r):((e,t,r)=>e<<r|t>>>32-r)(e,t,r),mr=(e,t,r)=>r>32?((e,t,r)=>e<<r-32|t>>>64-r)(e,t,r):((e,t,r)=>t<<r|e>>>32-r)(e,t,r);class fr extends tr{constructor(e,t,r,o=0,n=24){if(super(),this.blockLen=e,this.suffix=t,this.outputLen=r,this.enableXOF=o,this.rounds=n,this.pos=0,this.posOut=0,this.finished=0,this.destroyed=0,$t(r),0>=this.blockLen||this.blockLen>=200)throw new Error("Sha3 supports only keccak-f1600 function");var s;this.state=new Uint8Array(200),this.state32=(s=this.state,new Uint32Array(s.buffer,s.byteOffset,Math.floor(s.byteLength/4)))}keccak(){Xt||Yt(this.state32),function(e,t=24){const r=new Uint32Array(10);for(let o=24-t;o<24;o++){for(let t=0;t<10;t++)r[t]=e[t]^e[t+10]^e[t+20]^e[t+30]^e[t+40];for(let t=0;t<10;t+=2){const o=(t+8)%10,n=(t+2)%10,s=r[n],i=r[n+1],a=pr(s,i,1)^r[o],u=mr(s,i,1)^r[o+1];for(let r=0;r<50;r+=10)e[t+r]^=a,e[t+r+1]^=u}let t=e[2],n=e[3];for(let r=0;r<24;r++){const o=or[r],s=pr(t,n,o),i=mr(t,n,o),a=rr[r];t=e[a],n=e[a+1],e[a]=s,e[a+1]=i}for(let t=0;t<50;t+=10){for(let o=0;o<10;o++)r[o]=e[t+o];for(let o=0;o<10;o++)e[t+o]^=~r[(o+2)%10]&r[(o+4)%10]}e[0]^=dr[o],e[1]^=hr[o]}r.fill(0)}(this.state32,this.rounds),Xt||Yt(this.state32),this.posOut=0,this.pos=0}update(e){zt(this);const{blockLen:t,state:r}=this,o=(e=er(e)).length;for(let n=0;n<o;){const s=Math.min(t-this.pos,o-n);for(let t=0;t<s;t++)r[this.pos++]^=e[n++];this.pos===t&&this.keccak()}return this}finish(){if(this.finished)return;this.finished=1;const{state:e,suffix:t,pos:r,blockLen:o}=this;e[r]^=t,0!=(128&t)&&r===o-1&&this.keccak(),e[o-1]^=128,this.keccak()}writeInto(e){zt(this,0),jt(e),this.finish();const t=this.state,{blockLen:r}=this;for(let o=0,n=e.length;o<n;){this.posOut>=r&&this.keccak();const s=Math.min(r-this.posOut,n-o);e.set(t.subarray(this.posOut,this.posOut+s),o),this.posOut+=s,o+=s}return e}xofInto(e){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(e)}xof(e){return $t(e),this.xofInto(new Uint8Array(e))}digestInto(e){if(function(e,t){jt(e);const r=t.outputLen;if(e.length<r)throw new Error(`digestInto() expects output buffer of length at least ${r}`)}(e,this),this.finished)throw new Error("digest() was already called");return this.writeInto(e),this.destroy(),e}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=1,this.state.fill(0)}_cloneInto(e){const{blockLen:t,suffix:r,outputLen:o,rounds:n,enableXOF:s}=this;return e||(e=new fr(t,r,o,s,n)),e.state32.set(this.state32),e.pos=this.pos,e.posOut=this.posOut,e.finished=this.finished,e.rounds=n,e.suffix=r,e.outputLen=o,e.enableXOF=s,e.destroyed=this.destroyed,e}}const yr=(()=>function(e){const t=t=>e().update(er(t)).digest(),r=e();return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=()=>e(),t}((()=>new fr(136,1,32))))(),gr=e=>"object"==typeof e&&null!==e,wr=e=>gr(e)&&!(e instanceof RegExp)&&!(e instanceof Error)&&!(e instanceof Date),vr=Symbol("mapObjectSkip"),xr=(e,t,r,o=new WeakMap)=>{if(r={deep:0,target:{},...r},o.has(e))return o.get(e);o.set(e,r.target);const{target:n}=r;delete r.target;const s=e=>e.map((e=>wr(e)?xr(e,t,r,o):e));if(Array.isArray(e))return s(e);for(const[i,a]of Object.entries(e)){const u=t(i,a,e);if(u===vr)continue;let[c,l,{shouldRecurse:d=1}={}]=u;"__proto__"!==c&&(r.deep&&d&&wr(l)&&(l=Array.isArray(l)?s(l):xr(l,t,r,o)),n[c]=l)}return n};function br(e,t,r){if(!gr(e))throw new TypeError(`Expected an object, got \`${e}\` (${typeof e})`);return xr(e,t,r)}const Ir=/[\p{Lu}]/u,Er=/[\p{Ll}]/u,Ar=/^[\p{Lu}](?![\p{Lu}])/gu,Tr=/([\p{Alpha}\p{N}_]|$)/u,Mr=/[_.\- ]+/,Sr=new RegExp("^"+Mr.source),Cr=new RegExp(Mr.source+Tr.source,"gu"),kr=new RegExp("\\d+"+Tr.source,"gu");class _r extends Map{constructor(e={}){if(super(),!(e.maxSize&&e.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");if("number"==typeof e.maxAge&&0===e.maxAge)throw new TypeError("`maxAge` must be a number greater than 0");this.maxSize=e.maxSize,this.maxAge=e.maxAge||Number.POSITIVE_INFINITY,this.onEviction=e.onEviction,this.cache=new Map,this.oldCache=new Map,this._size=0}_emitEvictions(e){if("function"==typeof this.onEviction)for(const[t,r]of e)this.onEviction(t,r.value)}_deleteIfExpired(e,t){return"number"==typeof t.expiry&&t.expiry<=Date.now()?("function"==typeof this.onEviction&&this.onEviction(e,t.value),this.delete(e)):0}_getOrDeleteIfExpired(e,t){if(0==this._deleteIfExpired(e,t))return t.value}_getItemValue(e,t){return t.expiry?this._getOrDeleteIfExpired(e,t):t.value}_peek(e,t){const r=t.get(e);return this._getItemValue(e,r)}_set(e,t){this.cache.set(e,t),this._size++,this._size>=this.maxSize&&(this._size=0,this._emitEvictions(this.oldCache),this.oldCache=this.cache,this.cache=new Map)}_moveToRecent(e,t){this.oldCache.delete(e),this._set(e,t)}*_entriesAscending(){for(const e of this.oldCache){const[t,r]=e;this.cache.has(t)||0==this._deleteIfExpired(t,r)&&(yield e)}for(const e of this.cache){const[t,r]=e;0==this._deleteIfExpired(t,r)&&(yield e)}}get(e){if(this.cache.has(e)){const t=this.cache.get(e);return this._getItemValue(e,t)}if(this.oldCache.has(e)){const t=this.oldCache.get(e);if(0==this._deleteIfExpired(e,t))return this._moveToRecent(e,t),t.value}}set(e,t,{maxAge:r=this.maxAge}={}){const o="number"==typeof r&&r!==Number.POSITIVE_INFINITY?Date.now()+r:void 0;return this.cache.has(e)?this.cache.set(e,{value:t,expiry:o}):this._set(e,{value:t,expiry:o}),this}has(e){return this.cache.has(e)?!this._deleteIfExpired(e,this.cache.get(e)):this.oldCache.has(e)?!this._deleteIfExpired(e,this.oldCache.get(e)):0}peek(e){return this.cache.has(e)?this._peek(e,this.cache):this.oldCache.has(e)?this._peek(e,this.oldCache):void 0}delete(e){const t=this.cache.delete(e);return t&&this._size--,this.oldCache.delete(e)||t}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}resize(e){if(!(e&&e>0))throw new TypeError("`maxSize` must be a number greater than 0");const t=[...this._entriesAscending()],r=t.length-e;r<0?(this.cache=new Map(t),this.oldCache=new Map,this._size=t.length):(r>0&&this._emitEvictions(t.slice(0,r)),this.oldCache=new Map(t.slice(r)),this.cache=new Map,this._size=0),this.maxSize=e}*keys(){for(const[e]of this)yield e}*values(){for(const[,e]of this)yield e}*[Symbol.iterator](){for(const e of this.cache){const[t,r]=e;0==this._deleteIfExpired(t,r)&&(yield[t,r.value])}for(const e of this.oldCache){const[t,r]=e;this.cache.has(t)||0==this._deleteIfExpired(t,r)&&(yield[t,r.value])}}*entriesDescending(){let e=[...this.cache];for(let t=e.length-1;t>=0;--t){const r=e[t],[o,n]=r;0==this._deleteIfExpired(o,n)&&(yield[o,n.value])}e=[...this.oldCache];for(let t=e.length-1;t>=0;--t){const r=e[t],[o,n]=r;this.cache.has(o)||0==this._deleteIfExpired(o,n)&&(yield[o,n.value])}}*entriesAscending(){for(const[e,t]of this._entriesAscending())yield[e,t.value]}get size(){if(!this._size)return this.oldCache.size;let e=0;for(const t of this.oldCache.keys())this.cache.has(t)||e++;return Math.min(this._size+e,this.maxSize)}entries(){return this.entriesAscending()}forEach(e,t=this){for(const[r,o]of this.entriesAscending())e.call(t,o,r,this)}get[Symbol.toStringTag](){return JSON.stringify([...this.entriesAscending()])}}const Pr=new _r({maxSize:1e5}),Or=e=>!("object"!=typeof e||null===e||e instanceof RegExp||e instanceof Error||e instanceof Date),Lr=(e,t={})=>{if(!Or(e))return e;const{exclude:r,pascalCase:o=0,stopPaths:n,deep:s=0,preserveConsecutiveUppercase:i=0}=t,a=new Set(n),u=e=>(t,n)=>{if(s&&Or(n)){const r=void 0===e?t:`${e}.${t}`;a.has(r)||(n=br(n,u(r)))}if(!r||!((e,t)=>e.some((e=>"string"==typeof e?e===t:(e.lastIndex=0,e.test(t)))))(r,t)){const e=o?`${t}_`:t;if(Pr.has(e))t=Pr.get(e);else{const r=function(e,t){if("string"!=typeof e&&!Array.isArray(e))throw new TypeError("Expected the input to be `string | string[]`");if(t={pascalCase:0,preserveConsecutiveUppercase:0,...t},0===(e=Array.isArray(e)?e.map((e=>e.trim())).filter((e=>e.length)).join("-"):e.trim()).length)return"";const r=0==t.locale?e=>e.toLowerCase():e=>e.toLocaleLowerCase(t.locale),o=0==t.locale?e=>e.toUpperCase():e=>e.toLocaleUpperCase(t.locale);return 1===e.length?Mr.test(e)?"":t.pascalCase?o(e):r(e):(e!==r(e)&&(e=((e,t,r,o)=>{let n=0,s=0,i=0,a=0;for(let u=0;u<e.length;u++){const c=e[u];a=u>2?"-"===e[u-3]:1,n&&Ir.test(c)?(e=e.slice(0,u)+"-"+e.slice(u),n=0,i=s,s=1,u++):s&&i&&Er.test(c)&&(!a||o)?(e=e.slice(0,u-1)+"-"+e.slice(u-1),i=s,s=0,n=1):(n=t(c)===c&&r(c)!==c,i=s,s=r(c)===c&&t(c)!==c)}return e})(e,r,o,t.preserveConsecutiveUppercase)),e=e.replace(Sr,""),e=t.preserveConsecutiveUppercase?((e,t)=>(Ar.lastIndex=0,e.replaceAll(Ar,(e=>t(e)))))(e,r):r(e),t.pascalCase&&(e=o(e.charAt(0))+e.slice(1)),((e,t)=>(Cr.lastIndex=0,kr.lastIndex=0,e.replaceAll(kr,((r,o,n)=>["_","-"].includes(e.charAt(n+r.length))?r:t(r))).replaceAll(Cr,((e,r)=>t(r)))))(e,o))}(t,{pascalCase:o,locale:0,preserveConsecutiveUppercase:i});t.length<100&&Pr.set(e,r),t=r}}return[t,n]};return br(e,u(void 0))};function Nr(e){return"0x"+e.toString("hex")}function Br(e){return nt(e,void 0,"be").lt(G)}const Rr=e=>{return t=e,r={deep:1},Array.isArray(t)?Object.keys(t).map((e=>Lr(t[e],r))):Lr(t,r);var t,r};function Dr(e){let r=255;for(;r>=0;){const o=t.Buffer.concat([e,t.Buffer.from([r])]),n=yr(o);if(32!==n.length)throw new Error("Invalid hash length");if(n[0]=0,Br(t.Buffer.from(n)))return[t.Buffer.from(n),r];r-=1}return null}function Vr(e){const t=yr.create();for(const r of e)t.update(r);t.update(Uint8Array.from([255]));const r=t.digest();return r[0]=0,r}function Ur(e){const t=yr.create();for(const r of e)t.update(r);const r=t.digest();return r[0]=0,r}function qr(r){const o=r.proof?{a:r.proof.a,b:r.proof.b,c:r.proof.c}:null,n=r.new_address_params.map((e=>({seed:e.seed,addressMerkleTreeRootIndex:e.address_merkle_tree_root_index,addressMerkleTreeAccountIndex:e.address_merkle_tree_account_index,addressQueueAccountIndex:e.address_queue_account_index})));return{proof:o,inputCompressedAccountsWithMerkleContext:r.input_compressed_accounts.map((r=>({compressedAccount:{owner:new e.PublicKey(t.Buffer.alloc(32)),lamports:nt(r.lamports),address:r.address,data:null},merkleContext:{merkleTreePubkeyIndex:r.packedMerkleContext.merkle_tree_pubkey_index,queuePubkeyIndex:r.packedMerkleContext.queue_pubkey_index,leafIndex:r.packedMerkleContext.leaf_index,proveByIndex:r.packedMerkleContext.prove_by_index},rootIndex:r.root_index,readOnly:0}))),outputCompressedAccounts:r.output_compressed_accounts.map((e=>({compressedAccount:{owner:e.compressedAccount.owner,lamports:e.compressedAccount.lamports,address:e.compressedAccount.address,data:e.compressedAccount.data},merkleTreeIndex:e.merkleTreeIndex}))),relayFee:null,newAddressParams:n,compressOrDecompressLamports:r.compress_or_decompress_lamports,isCompress:r.is_compress}}function Fr(e,t){return Ur([t.toBytes(),...e])}function Kr(t,r=me().addressTree){if(32!=t.length)throw new Error("Seed length is not 32 bytes.");const o=r.toBytes(),n=Dr(Buffer.from([...o,...t]));if(null===n)throw new Error("DeriveAddressError");const s=n[0];return new e.PublicKey(s)}function Hr(e){return Vr(e.map((e=>Uint8Array.from(e))))}function Wr(t,r,o){if(32!=t.length)throw new Error("Address seed length is not 32 bytes.");const n=r.toBytes(),s=o.toBytes(),i=Vr([Uint8Array.from(t),Uint8Array.from(n),Uint8Array.from(s)]);return new e.PublicKey(i)}function $r(e,t){const r=t.slice(),o=e.map((e=>({seed:Array.from(e.seed),addressMerkleTreeRootIndex:e.addressMerkleTreeRootIndex,addressMerkleTreeAccountIndex:0,addressQueueAccountIndex:0})));return e.forEach(((e,t)=>{o[t].addressMerkleTreeAccountIndex=Bt(r,e.addressMerkleTreePubkey)})),e.forEach(((e,t)=>{o[t].addressQueueAccountIndex=Bt(r,e.addressQueuePubkey)})),{newAddressParamsPacked:o,remainingAccounts:r}}async function jr(e,t,r="confirmed"){const o=await e.getLatestBlockhash(r),n={signature:t.toString(),lastValidBlockHeight:o.lastValidBlockHeight,blockhash:o.blockhash};return await e.confirmTransaction(n,r)}function zr(e,t){return t.includes(e)?t.filter((t=>t.publicKey.toString()!==e.publicKey.toString())):t}class Zr{constructor(){this.preAccounts=[],this.systemAccounts=[],this.nextIndex=0,this.map=new Map}static newWithSystemAccounts(e){const t=new Zr;return t.addSystemAccounts(e),t}static newWithSystemAccountsV2(e){const t=new Zr;return t.addSystemAccountsV2(e),t}addPreAccountsSigner(e){this.preAccounts.push({pubkey:e,isSigner:1,isWritable:0})}addPreAccountsSignerMut(e){this.preAccounts.push({pubkey:e,isSigner:1,isWritable:1})}addPreAccountsMeta(e){this.preAccounts.push(e)}addSystemAccounts(e){$.isV2()?this.systemAccounts.push(...Jr(e)):this.systemAccounts.push(...Qr(e))}addSystemAccountsV2(e){this.systemAccounts.push(...Jr(e))}insertOrGet(e){return this.insertOrGetConfig(e,0,1)}insertOrGetReadOnly(e){return this.insertOrGetConfig(e,0,0)}insertOrGetConfig(e,t,r){const o=this.map.get(e);if(o)return o[0];const n=this.nextIndex++,s={pubkey:e,isSigner:t,isWritable:r};return this.map.set(e,[n,s]),n}hashSetAccountsToMetas(){const e=Array.from(this.map.entries());return e.sort(((e,t)=>e[1][0]-t[1][0])),e.map((([,[,e]])=>e))}getOffsets(){const e=this.preAccounts.length;return[e,e+this.systemAccounts.length]}toAccountMetas(){const e=this.hashSetAccountsToMetas(),[t,r]=this.getOffsets();return{remainingAccounts:[...this.preAccounts,...this.systemAccounts,...e],systemStart:t,packedStart:r}}}class Gr{constructor(e,t,r,o){this.selfProgram=e,this.cpiContext=t,this.solCompressionRecipient=r,this.solPoolPda=o}static new(e){return new Gr(e)}static newWithCpiContext(e,t){return new Gr(e,t)}}function Qr(t){let r=(new TextEncoder).encode("cpi_authority");const o=e.PublicKey.findProgramAddressSync([r],t.selfProgram)[0],n=ue(),s=[{pubkey:mo.programId,isSigner:0,isWritable:0},{pubkey:o,isSigner:0,isWritable:0},{pubkey:n.registeredProgramPda,isSigner:0,isWritable:0},{pubkey:n.noopProgram,isSigner:0,isWritable:0},{pubkey:n.accountCompressionAuthority,isSigner:0,isWritable:0},{pubkey:n.accountCompressionProgram,isSigner:0,isWritable:0},{pubkey:t.selfProgram,isSigner:0,isWritable:0}];return t.solPoolPda&&s.push({pubkey:t.solPoolPda,isSigner:0,isWritable:1}),t.solCompressionRecipient&&s.push({pubkey:t.solCompressionRecipient,isSigner:0,isWritable:1}),s.push({pubkey:e.SystemProgram.programId,isSigner:0,isWritable:0}),t.cpiContext&&s.push({pubkey:t.cpiContext,isSigner:0,isWritable:1}),s}function Jr(t){let r=(new TextEncoder).encode("cpi_authority");const o=e.PublicKey.findProgramAddressSync([r],t.selfProgram)[0],n=ue(),s=[{pubkey:mo.programId,isSigner:0,isWritable:0},{pubkey:o,isSigner:0,isWritable:0},{pubkey:n.registeredProgramPda,isSigner:0,isWritable:0},{pubkey:n.accountCompressionAuthority,isSigner:0,isWritable:0},{pubkey:n.accountCompressionProgram,isSigner:0,isWritable:0},{pubkey:e.SystemProgram.programId,isSigner:0,isWritable:0}];return t.solPoolPda&&s.push({pubkey:t.solPoolPda,isSigner:0,isWritable:1}),t.solCompressionRecipient&&s.push({pubkey:t.solCompressionRecipient,isSigner:0,isWritable:1}),t.cpiContext&&s.push({pubkey:t.cpiContext,isSigner:0,isWritable:1}),s}function Xr(e){const t=eo(e.ar[0]),r=eo(e.ar[1]),o=new Uint8Array([...t,...r]),n=eo(e.bs[0][0]),s=eo(e.bs[0][1]),i=eo(e.bs[1][0]),a=eo(e.bs[1][1]),u=new Uint8Array([...n,...s,...i,...a]),c=eo(e.krs[0]),l=eo(e.krs[1]);return{a:o,b:u,c:new Uint8Array([...c,...l])}}function Yr(e){const t=e.a,r=e.b,o=e.c,n=t.slice(0,32),s=to(nt(t.slice(32,64),32,"be"))?0:1;n[0]=ro(n[0],s);const i=r.slice(0,64),a=r.slice(64,128),u=function(e,t){const r=G.div(nt(2));return e.lt(r)?1:e.gt(r)?0:t.lt(r)}(nt(a.slice(0,32),32,"be"),nt(a.slice(32,64),32,"be"));i[0]=ro(i[0],u);const c=o.slice(0,32),l=o.slice(32,64),d=to(nt(l,32,"be"));return c[0]=ro(c[0],d),{a:Array.from(n),b:Array.from(i),c:Array.from(c)}}function eo(e){const t=nt(e.startsWith("0x")?e.substring(2):e,"hex");return new Uint8Array(t.toArray("be",32))}function to(e){return e.lte(G.sub(e))}function ro(e,t){return t?e:128|e}function oo(t,r,o,n){const s=new e.TransactionMessage({payerKey:r,recentBlockhash:o,instructions:t}).compileToV0Message(n);return new e.VersionedTransaction(s)}async function no(e,t,r){const o=await e.sendTransaction(t,r);return await so(e,o,r),o}async function so(e,t,r){const o=(null==r?void 0:r.commitment)||e.commitment||"confirmed",n=le(e.rpcEndpoint)?200:1e3;let s=0;await new Promise(((r,i)=>{const a=setInterval((async()=>{var u;s+=n,s>=8e4&&(clearInterval(a),i(new Error(`Transaction ${t}'s confirmation timed out`)));const c=await e.getSignatureStatuses([t]);(null===(u=null==c?void 0:c.value[0])||void 0===u?void 0:u.confirmationStatus)===o&&(clearInterval(a),r(t))}),n)}));const i=await e.getSlot();return await e.confirmTransactionIndexed(i),{context:{slot:i},value:{err:null}}}function io(e,t,r,o=[],n){if(o.includes(t))throw new Error("payer must not be in additionalSigners");const s=[t,...o],i=oo(e,t.publicKey,r,n);return i.sign(s),i}function ao(e,t){return uo(e,t)}function uo(e,t){const r=e.find((e=>e.tree.equals(t)||e.queue.equals(t)));if(!r)throw new Error(`No associated TreeInfo found for tree or queue. Please set activeStateTreeInfos with latest Tree accounts. If you use custom state trees, set manually. Pubkey: ${t.toBase58()}`);if(!r.queue)throw new Error("Queue must not be null for state tree. Please set activeStateTreeInfos with latest Tree accounts. If you use custom state trees, set manually. Pubkey: "+t.toBase58());return r}function co(e,t=($.isV2()?exports.TreeType.StateV2:exports.TreeType.StateV1),r=0){const o=e.filter((e=>!e.nextTreeInfo)).filter((e=>e.treeType===t));if(0===o.length)throw new Error("No active state tree infos found for the specified tree type");const n=r?o.length:Math.min(5,o.length),s=Math.floor(Math.random()*n);if(!o[s].queue)throw new Error("Queue must not be null for state tree");return o[s]}async function lo({connection:t,stateTreeLUTPairs:r}){var o;const n=await Promise.all(r.map((async e=>({stateTreeLookupTable:await t.getAddressLookupTable(e.stateTreeLookupTable),nullifyLookupTable:await t.getAddressLookupTable(e.nullifyLookupTable)})))),s=[];for(const{stateTreeLookupTable:t,nullifyLookupTable:r}of n){if(!t.value)throw new Error("State tree lookup table not found");if(!r.value)throw new Error("Nullify table not found");const n=t.value.state.addresses,i=r.value.state.addresses;if(n.length%3!=0)throw new Error("State tree lookup table must have a multiple of 3 addresses");for(let t=0;t<n.length;t+=3){const r=n[t],o=n[t+1],a=n[t+2];let u=null;if(!r||!o||!a)throw new Error("Invalid state tree pubkeys structure");const c=r.toBase58();let l;l=c.startsWith("bmt")?exports.TreeType.StateV2:c.startsWith("amt2")?exports.TreeType.AddressV2:c.startsWith("amt")?exports.TreeType.AddressV1:exports.TreeType.StateV1,i.map((e=>e.toBase58())).includes(r.toBase58())&&(u={tree:e.PublicKey.default,queue:e.PublicKey.default,cpiContext:e.PublicKey.default,treeType:l,nextTreeInfo:null}),s.push({tree:r,queue:o,cpiContext:a,treeType:l,nextTreeInfo:u})}for(const t of s)if(null===(o=t.nextTreeInfo)||void 0===o?void 0:o.tree.equals(e.PublicKey.default)){const e=s.find((e=>!e.nextTreeInfo));if(!e)throw new Error("No available tree info found to assign as next tree");t.nextTreeInfo=e}}return s}const ho=e=>e.reduce(((e,t)=>e.add(nt(t.lamports))),nt(0)),po=t.Buffer.from("sol_pool_pda");class mo{constructor(){}static deriveCompressedSolPda(){const t=[po],[r,o]=e.PublicKey.findProgramAddressSync(t,this.programId);return r}static createTransferOutputState(e,t,r){r=nt(r);const o=ho(e).sub(r);return Ut(o),o.eq(nt(0))?[st(t,r)]:(qt(e),[st(e[0].owner,o),st(t,r)])}static createDecompressOutputState(e,t){t=nt(t);const r=ho(e).sub(t);return Ut(r),r.eq(nt(0))?[]:(qt(e),[st(e[0].owner,r)])}static createNewAddressOutputState(e,t,r,o){r=nt(null!=r?r:0);const n=ho(null!=o?o:[]).sub(r);return Ut(n),n.eq(nt(0))||!o?[st(t,r,void 0,e)]:(qt(o),[st(o[0].owner,n),st(t,r,void 0,e)])}static async createAccount({payer:t,newAddressParams:r,newAddress:o,recentValidityProof:n,outputStateTreeInfo:s,inputCompressedAccounts:i,inputStateRootIndices:a,lamports:u}){const c=this.createNewAddressOutputState(o,t,u,i),{packedInputCompressedAccounts:l,packedOutputCompressedAccounts:d,remainingAccounts:h}=Vt(null!=i?i:[],null!=a?a:[],c,i&&0!==i.length?void 0:s),{newAddressParamsPacked:p,remainingAccounts:m}=$r([r],h),f=ht({proof:n,inputCompressedAccountsWithMerkleContext:l,outputCompressedAccounts:d,relayFee:null,newAddressParams:p,compressOrDecompressLamports:null,isCompress:0}),y=[...Tt(Object.assign(Object.assign({},ue()),{feePayer:t,authority:t,solPoolPda:null,decompressionRecipient:null,systemProgram:e.SystemProgram.programId})),...Dt(m)];return new e.TransactionInstruction({programId:this.programId,keys:y,data:f})}static async transfer({payer:t,inputCompressedAccounts:r,toAddress:o,lamports:n,recentInputStateRootIndices:s,recentValidityProof:i}){const a=this.createTransferOutputState(r,o,n),{packedInputCompressedAccounts:u,packedOutputCompressedAccounts:c,remainingAccounts:l}=Vt(r,s,a),d=ht({proof:i,inputCompressedAccountsWithMerkleContext:u,outputCompressedAccounts:c,relayFee:null,newAddressParams:[],compressOrDecompressLamports:null,isCompress:0}),h=[...Tt(Object.assign(Object.assign({},ue()),{feePayer:t,authority:t,solPoolPda:null,decompressionRecipient:null,systemProgram:e.SystemProgram.programId})),...Dt(l)];return new e.TransactionInstruction({programId:this.programId,keys:h,data:d})}static async compress({payer:t,toAddress:r,lamports:o,outputStateTreeInfo:n}){o=nt(o);const s=st(r,o),{packedInputCompressedAccounts:i,packedOutputCompressedAccounts:a,remainingAccounts:u}=Vt([],[],[s],n),c=ht({proof:null,inputCompressedAccountsWithMerkleContext:i,outputCompressedAccounts:a,relayFee:null,newAddressParams:[],compressOrDecompressLamports:o,isCompress:1}),l=[...Tt(Object.assign(Object.assign({},ue()),{feePayer:t,authority:t,solPoolPda:mo.deriveCompressedSolPda(),decompressionRecipient:null,systemProgram:e.SystemProgram.programId})),...Dt(u)];return new e.TransactionInstruction({programId:this.programId,keys:l,data:c})}static async decompress({payer:t,inputCompressedAccounts:r,toAddress:o,lamports:n,recentInputStateRootIndices:s,recentValidityProof:i}){n=nt(n);const a=this.createDecompressOutputState(r,n),{packedInputCompressedAccounts:u,packedOutputCompressedAccounts:c,remainingAccounts:l}=Vt(r,s,a),d=ht({proof:i,inputCompressedAccountsWithMerkleContext:u,outputCompressedAccounts:c,relayFee:null,newAddressParams:[],compressOrDecompressLamports:n,isCompress:0}),h=[...Tt(Object.assign(Object.assign({},ue()),{feePayer:t,authority:t,solPoolPda:mo.deriveCompressedSolPda(),decompressionRecipient:o,systemProgram:e.SystemProgram.programId})),...Dt(l)];return new e.TransactionInstruction({programId:this.programId,keys:h,data:d})}}function fo(e,t){let r=nt(0);t=nt(t);const o=[];e.sort(((e,t)=>t.lamports.cmp(e.lamports)));for(const n of e){if(r.gte(nt(t)))break;r=r.add(n.lamports),o.push(n)}if(r.lt(nt(t)))throw new Error(`Insufficient balance for transfer. Required: ${t.toString()}, available: ${r.toString()}`);return[o,r]}mo.programId=new e.PublicKey("SySTEM1eSU2p4BGQfQpimFEWWSC1XDFeun3Nqzz3rT7");class yo{constructor(e,t,r){this.index=e,this.value=t,this.nextIndex=r}equals(e){return this.value.eq(e.value)}compareTo(e){return this.value.cmp(e.value)}hash(e,t){try{return e.poseidonHash([nt(this.value.toArray("be",32)).toString(),nt(this.nextIndex).toString(),nt(t.toArray("be",32)).toString()])}catch(e){throw new Error("Hashing failed")}}}class go{constructor(e,t,r){this.newLowElement=e,this.newElement=t,this.newElementNextValue=r}}class wo{constructor(e,t,r){this.elements=e,this.currentNodeIndex=t,this.highestElementIndex=r}static default(){return new wo([new yo(0,nt(0),0)],0,0)}get(e){return this.elements[e]}length(){return Number(this.currentNodeIndex)}isEmpty(){return 0===this.currentNodeIndex}findElement(e){return this.elements.slice(0,this.length()+1).find((t=>t.value===e))}init(){try{const e=Q;return this.append(e)}catch(e){throw new Error(`Failed to initialize IndexedArray: ${e}`)}}findLowElementIndex(e){for(let t=0;t<=this.length();t++){const r=this.elements[t];if(this.elements[r.nextIndex].value.gt(e)&&r.value.lt(e))return t;if(r.value.eq(e))throw new Error("Element already exists in the array")}return this.highestElementIndex}findLowElement(e){const t=this.findLowElementIndex(e);if(void 0===t)return[void 0,void 0];const r=this.elements[t];return[r,this.elements[r.nextIndex].value]}hashElement(e,t){const r=this.elements[t];if(!r)return;const o=this.elements[r.nextIndex];return o?e.poseidonHash([nt(r.value.toArray("be",32)).toString(),nt(r.nextIndex).toString(),nt(o.value.toArray("be",32)).toString()]):void 0}append(e){const t=this.findLowElementIndex(e);if(void 0===t)throw new Error("Low element index not found.");return this.appendWithLowElementIndex(t,e)}appendWithLowElementIndex(e,t){const r=this.elements[e];if(0===r.nextIndex){if(t.lte(r.value))throw new Error("New element value must be greater than the low element value.")}else{const e=this.elements[r.nextIndex];if(t.lte(r.value))throw new Error("New element value must be greater than the low element value.");if(t.gte(e.value))throw new Error("New element value must be less than the next element value.")}const o=this.newElementWithLowElementIndex(e,t);return 0===r.nextIndex&&(this.highestElementIndex=o.newElement.index),this.currentNodeIndex=o.newElement.index,this.elements[this.length()]=o.newElement,this.elements[e]=o.newLowElement,o}lowest(){return this.elements.length>0?this.elements[0]:void 0}newElementWithLowElementIndex(e,t){const r=this.elements[e],o=this.currentNodeIndex+1,n=new yo(o,t,r.nextIndex);r.nextIndex=o;const s=this.elements[n.nextIndex].value;return new go(r,n,s)}newElement(e){const t=this.findLowElementIndex(e);if(void 0===t)throw new Error("Low element index not found.");return this.newElementWithLowElementIndex(t,e)}}class vo{constructor(e,t,r=[],{zeroElement:o="0"}={}){if(this.levels=e,this.capacity=2**e,this.zeroElement=o,this._lightWasm=t,r.length>this.capacity)throw new Error("Tree is full");this._zeros=[],this._layers=[],this._layers[0]=r,this._zeros[0]=this.zeroElement;for(let t=1;t<=e;t++)this._zeros[t]=this._lightWasm.poseidonHashString([this._zeros[t-1],this._zeros[t-1]]);this._rebuild()}_rebuild(){for(let e=1;e<=this.levels;e++){this._layers[e]=[];for(let t=0;t<Math.ceil(this._layers[e-1].length/2);t++)this._layers[e][t]=this._lightWasm.poseidonHashString([this._layers[e-1][2*t],2*t+1<this._layers[e-1].length?this._layers[e-1][2*t+1]:this._zeros[e-1]])}}root(){return this._layers[this.levels].length>0?this._layers[this.levels][0]:this._zeros[this.levels]}insert(e){if(this._layers[0].length>=this.capacity)throw new Error("Tree is full");this.update(this._layers[0].length,e)}bulkInsert(e){if(this._layers[0].length+e.length>this.capacity)throw new Error("Tree is full");this._layers[0].push(...e),this._rebuild()}update(e,t){if(isNaN(Number(e))||e<0||e>this._layers[0].length||e>=this.capacity)throw new Error("Insert index out of bounds: "+e);this._layers[0][e]=t;for(let t=1;t<=this.levels;t++)e>>=1,this._layers[t][e]=this._lightWasm.poseidonHashString([this._layers[t-1][2*e],2*e+1<this._layers[t-1].length?this._layers[t-1][2*e+1]:this._zeros[t-1]])}path(e){if(isNaN(Number(e))||e<0||e>=this._layers[0].length)throw new Error("Index out of bounds: "+e);const t=[],r=[];for(let o=0;o<this.levels;o++)r[o]=e%2,t[o]=(1^e)<this._layers[o].length?this._layers[o][1^e]:this._zeros[o],e>>=1;return{pathElements:t,pathIndices:r}}indexOf(e,t=null){return t?this._layers[0].findIndex((r=>t(e,r))):this._layers[0].indexOf(e)}elements(){return this._layers[0].slice()}serialize(){return{levels:this.levels,_zeros:this._zeros,_layers:this._layers}}static deserialize(e,t){const r=Object.assign(Object.create(this.prototype),e);return r._hash=t,r.capacity=2**r.levels,r.zeroElement=r._zeros[0],r}}async function xo(e){const t=[],{noopProgram:r,accountCompressionProgram:o}=ue(),n=(await e.getSignaturesForAddress(o,void 0,"confirmed")).map((e=>e.signature)),s=[];for(let t=0;t<n.length;t+=100){const r=n.slice(t,t+100),o=await e.getParsedTransactions(r,{maxSupportedTransactionVersion:0,commitment:"confirmed"});s.push(...o)}for(const r of s){if(!r||!r.transaction||!r.meta)continue;if(!r.meta.innerInstructions||0==r.meta.innerInstructions.length)continue;const o=r.transaction.message.accountKeys.map((e=>e.pubkey)),n=[],s=await e.getTransaction(r.transaction.signatures[0],{commitment:"confirmed",maxSupportedTransactionVersion:0});for(const e of(null==s?void 0:s.transaction.message.compiledInstructions)||[])if(e.data&&e.data.length>0){const t=Uint8Array.from(e.data);if(t.length===J.length&&J.every(((e,r)=>e===t[r])))continue;n.push(t)}const i=[];if(s.meta.innerInstructions&&s.meta.innerInstructions.length>0)for(const e of s.meta.innerInstructions)for(const t of e.instructions){const e=t.accounts.map((e=>o[e]));if(i.push(e),t.data&&t.data.length>0){const e=tt.decode(t.data);n.push(e)}}const a=Eo(n,i);a&&t.push(a)}if(t.length>0)return t;const i=s.filter((e=>e?e.transaction.message.accountKeys.some((e=>("string"==typeof e?e:e.pubkey.toBase58())===r.toBase58())):0));return bo(i,Io)}const bo=(e,r)=>{const{noopProgram:o}=ue(),n=[];return e.forEach((e=>{!e||!e.meta||e.meta.err||!e.meta.innerInstructions||e.meta.innerInstructions.length<=0||e.meta.innerInstructions.forEach((s=>{if(s.instructions.length>0){const i=s.instructions[s.instructions.length-1];if("data"in i&&i.data&&i.programId.toBase58()===o.toBase58()){const o=tt.decode(i.data),s=r(t.Buffer.from(o),e);null!=s&&n.push(s)}}}))})),n},Io=e=>{const r=t.Buffer.from(e.map((e=>e)));try{return St(r)}catch(e){return console.error("Error deserializing event:",e),null}};function Eo(e,r){let o=0,n=null,s=null;for(const r of e){const e=r.slice(0,8),s=tt.encode(e),i=tt.encode(X),a=tt.encode(Y),u=tt.encode(ee);if(s===i){n=Et(t.Buffer.from(r)),o=1;break}if(s==a){n=At(t.Buffer.from(r)),o=1;break}if(s==u){n=qr(It(t.Buffer.from(r))),o=1;break}}if(!o)return null;for(const r of e){const e=r.slice(0,8);if(tt.encode(e)===tt.encode(re)){const e=r.slice(12);s=Lt(t.Buffer.from(e))}}return n?Nt(s,r[r.length-1],n):null}async function Ao(e,t){return(await To(e)).find((e=>nt(e.hash).eq(t)))}async function To(e){var t,r;const o=(await xo(e)).reverse(),n=[],s=[],i=await e.getStateTreeInfos();for(const e of o){for(let o=0;o<e.outputCompressedAccounts.length;o++){const s=ao(i,e.pubkeyArray[e.outputCompressedAccounts[o].merkleTreeIndex]),a=e.outputCompressedAccounts[o],u={treeInfo:s,hash:nt(e.outputCompressedAccountHashes[o]),leafIndex:e.outputLeafIndices[o],proveByIndex:s.treeType===exports.TreeType.StateV2},c=it(u,a.compressedAccount.owner,a.compressedAccount.lamports,null!==(t=a.compressedAccount.data)&&void 0!==t?t:void 0,null!==(r=a.compressedAccount.address)&&void 0!==r?r:void 0);n.push(c)}for(let t=0;t<e.inputCompressedAccountHashes.length;t++){const r=e.inputCompressedAccountHashes[t];s.push(nt(r))}}const a=n.filter((e=>!s.some((t=>t.eq(nt(e.hash))))));return a.sort(((e,t)=>t.leafIndex-e.leafIndex)),a}function Mo(t,r=fe){if(null===t.data)return null;const{data:o}=t.data;if(0===o.length)return null;if(t.owner.toBase58()!==r.toBase58())throw new Error(`Invalid owner ${t.owner.toBase58()} for token layout`);try{const t=Buffer.from(o);let r=0;const n=new e.PublicKey(t.slice(r,r+32));r+=32;const s=new e.PublicKey(t.slice(r,r+32));r+=32;const i=new W(t.slice(r,r+8),"le");r+=8;const a=t[r];r+=1;const u=a?new e.PublicKey(t.slice(r,r+32)):null;r+=32;const c=t[r];r+=1;const l=t[r];return r+=1,{mint:n,owner:s,amount:i,delegate:u,state:c,tlv:l?t.slice(r):null}}catch(e){throw console.error("Decoding error:",e),e}}async function So(e,t){const r=await Promise.all(e.map((e=>async function(e,t){const r=e.pubkeyArray,o=await t.getStateTreeInfos(),n=e.outputCompressedAccountHashes,s=e.outputCompressedAccounts.map(((t,s)=>{var i;const a=r[e.outputCompressedAccounts[s].merkleTreeIndex],u=ao(o,a);if(!(u.tree.equals(r[e.outputCompressedAccounts[s].merkleTreeIndex])||$.isV2()&&u.queue.equals(r[e.outputCompressedAccounts[s].merkleTreeIndex])))throw new Error("Invalid tree");const c={treeInfo:u,hash:nt(n[s]),leafIndex:e.outputLeafIndices[s],proveByIndex:u.treeType===exports.TreeType.StateV2};if(!t.compressedAccount.data)throw new Error("No data");const l=Mo(t.compressedAccount);if(!l)throw new Error("Invalid token data");return{compressedAccount:it(c,t.compressedAccount.owner,t.compressedAccount.lamports,t.compressedAccount.data,null!==(i=t.compressedAccount.address)&&void 0!==i?i:void 0),parsed:l}}));return{inputCompressedAccountHashes:e.inputCompressedAccountHashes,outputCompressedAccounts:s}}(e,t)))),o=r.flatMap((e=>e.outputCompressedAccounts)),n=r.flatMap((e=>e.inputCompressedAccountHashes));return o.filter((e=>!n.some((t=>nt(t).eq(e.compressedAccount.hash)))))}async function Co(e,t,r){const o=await xo(e);return{items:(await So(o,e)).filter((e=>e.parsed.owner.equals(t)&&e.parsed.mint.equals(r))).sort(((e,t)=>e.compressedAccount.leafIndex-t.compressedAccount.leafIndex)),cursor:null}}async function ko(e,t,r){const o=await xo(e);return{items:(await So(o,e)).filter((e=>{var o;return(null===(o=e.parsed.delegate)||void 0===o?void 0:o.equals(t))&&e.parsed.mint.equals(r)})),cursor:null}}async function _o(e,t){const r=await xo(e),o=(await So(r,e)).filter((e=>nt(e.compressedAccount.hash).eq(t)));if(0===o.length)throw new Error("No compressed account found");return o[0]}class Po extends TypeError{constructor(e,t){let r;const{message:o,explanation:n,...s}=e,{path:i}=e,a=0===i.length?o:`At path: ${i.join(".")} -- ${o}`;super(n??a),null!=n&&(this.cause=a),Object.assign(this,s),this.name=this.constructor.name,this.failures=()=>r??(r=[e,...t()])}}function Oo(e){return"object"==typeof e&&null!=e}function Lo(e){return Oo(e)&&!Array.isArray(e)}function No(e){return"symbol"==typeof e?e.toString():"string"==typeof e?JSON.stringify(e):`${e}`}function Bo(e,t,r,o){if(1==e)return;0==e?e={}:"string"==typeof e&&(e={message:e});const{path:n,branch:s}=t,{type:i}=r,{refinement:a,message:u=`Expected a value of type \`${i}\`${a?` with refinement \`${a}\``:""}, but received: \`${No(o)}\``}=e;return{value:o,type:i,refinement:a,key:n[n.length-1],path:n,branch:s,...e,message:u}}function*Ro(e,t,r,o){var n;Oo(n=e)&&"function"==typeof n[Symbol.iterator]||(e=[e]);for(const n of e){const e=Bo(n,t,r,o);e&&(yield e)}}function*Do(e,t,r={}){const{path:o=[],branch:n=[e],coerce:s=0,mask:i=0}=r,a={path:o,branch:n,mask:i};s&&(e=t.coercer(e,a));let u="valid";for(const o of t.validator(e,a))o.explanation=r.message,u="not_valid",yield[o,void 0];for(let[c,l,d]of t.entries(e,a)){const t=Do(l,d,{path:void 0===c?o:[...o,c],branch:void 0===c?n:[...n,l],coerce:s,mask:i,message:r.message});for(const r of t)r[0]?(u=null!=r[0].refinement?"not_refined":"not_valid",yield[r[0],void 0]):s&&(l=r[1],void 0===c?e=l:e instanceof Map?e.set(c,l):e instanceof Set?e.add(l):Oo(e)&&(void 0!==l||c in e)&&(e[c]=l))}if("not_valid"!==u)for(const o of t.refiner(e,a))o.explanation=r.message,u="not_refined",yield[o,void 0];"valid"===u&&(yield[void 0,e])}class Vo{constructor(e){const{type:t,schema:r,validator:o,refiner:n,coercer:s=(e=>e),entries:i=function*(){}}=e;this.type=t,this.schema=r,this.entries=i,this.coercer=s,this.validator=o?(e,t)=>Ro(o(e,t),t,this,e):()=>[],this.refiner=n?(e,t)=>Ro(n(e,t),t,this,e):()=>[]}assert(e,t){return function(e,t,r){const o=Fo(e,t,{message:r});if(o[0])throw o[0]}(e,this,t)}create(e,t){return Uo(e,this,t)}is(e){return qo(e,this)}mask(e,t){return function(e,t,r){const o=Fo(e,t,{coerce:1,mask:1,message:r});if(o[0])throw o[0];return o[1]}(e,this,t)}validate(e,t={}){return Fo(e,this,t)}}function Uo(e,t,r){const o=Fo(e,t,{coerce:1,message:r});if(o[0])throw o[0];return o[1]}function qo(e,t){return!Fo(e,t)[0]}function Fo(e,t,r={}){const o=Do(e,t,r),n=function(e){const{done:t,value:r}=e.next();return t?void 0:r}(o);return n[0]?[new Po(n[0],(function*(){for(const e of o)e[0]&&(yield e[0])})),void 0]:[void 0,n[1]]}function Ko(e,t){return new Vo({type:e,schema:null,validator:t})}function Ho(){return Ko("any",(()=>1))}function Wo(e){return new Vo({type:"array",schema:e,*entries(t){if(e&&Array.isArray(t))for(const[r,o]of t.entries())yield[r,o,e]},coercer:e=>Array.isArray(e)?e.slice():e,validator:e=>Array.isArray(e)||`Expected an array value, but received: ${No(e)}`})}function $o(){return Ko("boolean",(e=>"boolean"==typeof e))}function jo(e){return Ko("instance",(t=>t instanceof e||`Expected a \`${e.name}\` instance, but received: ${No(t)}`))}function zo(e){const t=No(e);return new Vo({type:"literal",schema:e,validator:r=>r===e||`Expected the literal \`${t}\`, but received: ${No(r)}`})}function Zo(e){return new Vo({...e,validator:(t,r)=>null===t||e.validator(t,r),refiner:(t,r)=>null===t||e.refiner(t,r)})}function Go(){return Ko("number",(e=>"number"==typeof e&&!isNaN(e)||`Expected a number, but received: ${No(e)}`))}function Qo(){return Ko("string",(e=>"string"==typeof e||`Expected a string, but received: ${No(e)}`))}function Jo(e){const t=Object.keys(e);return new Vo({type:"type",schema:e,*entries(r){if(Oo(r))for(const o of t)yield[o,r[o],e[o]]},validator:e=>Lo(e)||`Expected an object, but received: ${No(e)}`,coercer:e=>Lo(e)?{...e}:e})}function Xo(e){const t=e.map((e=>e.type)).join(" | ");return new Vo({type:"union",schema:null,coercer(t,r){for(const o of e){const[e,n]=o.validate(t,{coerce:1,mask:r.mask});if(!e)return n}return t},validator(r,o){const n=[];for(const t of e){const[...e]=Do(r,t,o),[s]=e;if(!s[0])return[];for(const[t]of e)t&&n.push(t)}return[`Expected the value to satisfy a union of \`${t}\`, but received: ${No(r)}`,...n]}})}function Yo(){return Ko("unknown",(()=>1))}function en(e,t,r){return new Vo({...e,coercer:(o,n)=>qo(o,t)?e.coercer(r(o,n),n):e.coercer(o,n)})}var tn;exports.DerivationMode=void 0,(tn=exports.DerivationMode||(exports.DerivationMode={})).compressible="compressible",tn.standard="standard";const rn=en(jo(e.PublicKey),Qo(),(t=>new e.PublicKey(t))),on=en(jo(Array),Qo(),(t=>Array.from(new e.PublicKey(t).toBytes()))),nn=en(jo(W),Qo(),(e=>rt(e,"base58"))),sn=en($o(),Xo([Go(),$o()]),(e=>Boolean(e))),an=en(jo(W),Xo([Qo(),Go()]),(e=>{if("number"==typeof e){if(!Number.isSafeInteger(e))throw new Error(`Unsafe integer. Precision loss: ${e}`);return nt(e)}return nt(e,10)})),un=Qo();function cn(e){return Xo([Jo({jsonrpc:zo("2.0"),id:Qo(),result:e}),Jo({jsonrpc:zo("2.0"),id:Qo(),error:Jo({code:Yo(),message:Qo(),data:Zo(Ho())})})])}const ln=cn(Yo());function dn(e){return en(cn(e),ln,(t=>"error"in t?t:Object.assign(Object.assign({},t),{result:Uo(t.result,e)})))}function hn(e){return dn(Jo({context:Jo({slot:Go()}),value:e}))}const pn=Jo({treeType:Go(),tree:rn,queue:rn,cpiContext:Zo(rn)}),mn=Jo({treeType:Go(),tree:rn,queue:rn,cpiContext:Zo(rn),nextTreeContext:(fn=Zo(pn),new Vo({...fn,validator:(e,t)=>void 0===e||fn.validator(e,t),refiner:(e,t)=>void 0===e||fn.refiner(e,t)}))});var fn;const yn=Jo({address:Zo(on),hash:nn,data:Zo(Jo({data:un,dataHash:nn,discriminator:an})),lamports:an,owner:rn,leafIndex:Go(),tree:rn,seq:Zo(an),slotCreated:an}),gn=Jo({address:Zo(on),hash:nn,data:Zo(Jo({data:un,dataHash:nn,discriminator:an})),lamports:an,owner:rn,leafIndex:Go(),seq:Zo(an),slotCreated:an,merkleContext:mn,proveByIndex:sn}),wn=Jo({mint:rn,owner:rn,amount:an,delegate:Zo(rn),state:Qo()}),vn=Jo({tokenData:wn,account:yn}),xn=Jo({tokenData:wn,account:gn}),bn=Jo({items:Wo(yn)}),In=Jo({items:Wo(gn)}),En=Jo({items:Wo(yn),cursor:Zo(Qo())}),An=Jo({items:Wo(gn),cursor:Zo(Qo())}),Tn=Jo({items:Wo(vn),cursor:Zo(Qo())}),Mn=Jo({items:Wo(xn),cursor:Zo(Qo())}),Sn=Go(),Cn=Qo(),kn=Jo({items:Wo(Jo({signature:Qo(),slot:Go(),blockTime:Go(),error:Zo(Qo())}))}),_n=Jo({items:Wo(Jo({signature:Qo(),slot:Go(),blockTime:Go()})),cursor:Zo(Qo())}),Pn=Jo({hash:nn,leafIndex:Go(),merkleTree:rn,proof:Wo(nn),rootSeq:Go(),root:nn}),On=Jo({hash:nn,leafIndex:Go(),proof:Wo(nn),root:nn,rootSeq:Go(),proveByIndex:sn,treeContext:mn}),Ln=Jo({address:nn,nextIndex:Go(),merkleTree:rn,proof:Wo(nn),rootSeq:Go(),root:nn,lowerRangeAddress:nn,higherRangeAddress:nn,lowElementLeafIndex:Go()}),Nn=Jo({a:Wo(Go()),b:Wo(Go()),c:Wo(Go())}),Bn=Jo({rootIndex:Go(),proveByIndex:sn}),Rn=Jo({compressedProof:Nn,leafIndices:Wo(Go()),leaves:Wo(nn),rootIndices:Wo(Go()),roots:Wo(nn),merkleTrees:Wo(rn)}),Dn=Jo({hash:nn,root:nn,rootIndex:Bn,merkleContext:mn,leafIndex:Go()}),Vn=Jo({address:nn,root:nn,rootIndex:Go(),merkleContext:mn}),Un=Jo({compressedProof:Zo(Nn),accounts:Wo(Dn),addresses:Wo(Vn)}),qn=Wo(Pn),Fn=Wo(On),Kn=Jo({amount:an}),Hn=an,Wn=Jo({balance:an,mint:rn}),$n=Jo({tokenBalances:Wo(Wn),cursor:Zo(Qo())}),jn=Jo({items:Wo(Wn),cursor:Zo(Qo())}),zn=Jo({cursor:Zo(Qo()),items:Wo(Jo({balance:an,owner:rn}))}),Zn=Jo({hash:Wo(Go()),root:Wo(Go()),proof:Wo(Wo(Go()))}),Gn=Jo({items:Wo(Jo({blockTime:Go(),signature:Qo(),slot:Go()}))}),Qn=Jo({items:Wo(Jo({blockTime:Go(),signature:Qo(),slot:Go()})),cursor:Zo(Qo())}),Jn=Jo({account:gn,txHash:nn,nullifier:nn}),Xn=Jo({compressionInfo:Jo({closedAccounts:Wo(Jo({account:yn,optionalTokenData:Zo(wn)})),openedAccounts:Wo(Jo({account:yn,optionalTokenData:Zo(wn)}))}),transaction:Ho()}),Yn=Jo({compressionInfo:Jo({closedAccounts:Wo(Jo({account:Jn,optionalTokenData:Zo(wn)})),openedAccounts:Wo(Jo({account:gn,optionalTokenData:Zo(wn)}))}),transaction:Ho()}),es={Solana:"solana",Compressed:"compressed"};let ts=0;function rs({discriminator:e,data:r,dataHash:o}){return{discriminator:e.toArray("le",8),data:t.Buffer.from(r,"base64"),dataHash:o.toArray("le",32)}}async function os(t,r,o,n=0){var s,i;const a=Z(n?"getCompressedTokenAccountsByDelegate":"getCompressedTokenAccountsByOwner"),u=n?"delegate":"owner",c=await ss(t.compressionApiEndpoint,a,{[u]:r.toBase58(),mint:null===(s=o.mint)||void 0===s?void 0:s.toBase58(),limit:null===(i=o.limit)||void 0===i?void 0:i.toNumber(),cursor:o.cursor});let l;if(l=$.isV2()?Uo(c,hn(Mn)):Uo(c,hn(Tn)),"error"in l)throw new e.SolanaJSONRPCError(l.error,`failed to get info for compressed accounts by ${u} ${r.toBase58()}`);if(null===l.result.value)throw new Error("not implemented: NULL result");const d=[],h=await t.getStateTreeInfos();return l.result.value.items.map((e=>{var t;const o=e.account,n=e.tokenData,s=$.isV2()?o.merkleContext.tree:o.tree,i=$.isV2()?o.proveByIndex:0,a=ao(h,s),c=it(at(a,o.hash,o.leafIndex,i),o.owner,nt(o.lamports),o.data?rs(o.data):void 0,o.address||void 0),l={mint:n.mint,owner:n.owner,amount:n.amount,delegate:n.delegate,state:["uninitialized","initialized","frozen"].indexOf(n.state),tlv:null};if((null===(t=l[u])||void 0===t?void 0:t.toBase58())!==r.toBase58())throw new Error(`RPC returned token account with ${u} different from requested ${u}`);d.push({compressedAccount:c,parsed:l})})),{items:d.sort(((e,t)=>t.compressedAccount.leafIndex-e.compressedAccount.leafIndex)),cursor:l.result.value.cursor}}function ns(e){return e.replace(/(":\s*)(-?\d+)(\s*[},])/g,((e,t,r,o)=>{const n=Number(r);return!Number.isNaN(n)&&(n>Number.MAX_SAFE_INTEGER||n<Number.MIN_SAFE_INTEGER)?`${t}"${r}"${o}`:e}))}const ss=async(e,t,r=[],o=1,n=0)=>{const s=JSON.stringify({jsonrpc:"2.0",id:"test-account",method:t,params:r});if(n){const t=()=>{const t=s.replace(/"/g,'\\"');return`curl -X POST ${e} \\\n -H "Content-Type: application/json" \\\n -d "${t}"`};console.log("Debug: Stack trace:"),console.log((new Error).stack),console.log("\nDebug: curl:"),console.log(t()),console.log("\n")}const i=await fetch(e,{method:"POST",headers:{"Content-Type":"application/json"},body:s});if(!i.ok)throw new Error(`HTTP error! status: ${i.status}`);const a=ns(await i.text());return o?Rr(JSON.parse(a)):JSON.parse(a)},is=async(e,t,r=[],o=0)=>{let n,s="";o&&(s=`Proof generation for method:${t}`,console.time(s)),"inclusion"===t?n=JSON.stringify({circuitType:"inclusion",stateTreeHeight:26,inputCompressedAccounts:r}):"new-address"===t?n=JSON.stringify({circuitType:"non-inclusion",addressTreeHeight:26,newAddresses:r}):"combined"===t&&(n=JSON.stringify({circuitType:"combined",stateTreeHeight:26,addressTreeHeight:26,inputCompressedAccounts:r[0],newAddresses:r[1]}));const i=await fetch(`${e}/prove`,{method:"POST",headers:{"Content-Type":"application/json"},body:n});if(!i.ok)throw new Error(`Error fetching proof: ${i.statusText}`);const a=Yr(Xr(await i.json()));return o&&console.timeEnd(s),a};function as(e){const t=[];for(let r=0;r<e.length;r++){const o={root:Nr(e[r].root),pathIndex:e[r].leafIndex,pathElements:e[r].merkleProof.map((e=>Nr(e))),leaf:Nr(nt(e[r].hash))};t.push(o)}return t}function us(e){const t=[];for(let r=0;r<e.length;r++){const o={root:Nr(e[r].root),value:Nr(e[r].value),pathIndex:e[r].indexHashedIndexedElementLeaf.toNumber(),pathElements:e[r].merkleProofHashedIndexedElementLeaf.map((e=>Nr(e))),nextIndex:e[r].nextIndex.toNumber(),leafLowerRangeValue:Nr(e[r].leafLowerRangeValue),leafHigherRangeValue:Nr(e[r].leafHigherRangeValue)};t.push(o)}return t}function cs(e,t,r){if(e.length!==t.length)throw new Error("Input lengths must match.");if(0===e.length)return nt(0);let o=r.poseidonHashBN([e[0].toString(),t[0].toString()]);for(let n=1;n<e.length;n++)o=r.poseidonHashBN([o.toString(),e[n].toString(),t[n].toString()]);return o}function ls(e){const t=e.account,r=e.optionalTokenData,o=it(at(t.treeInfo,t.hash.toArray("be",32),t.leafIndex,t.proveByIndex),t.owner,nt(t.lamports),t.data?rs(t.data):void 0,t.address||void 0);return null===r?{account:o,maybeTokenData:null}:{account:o,maybeTokenData:{mint:r.mint,owner:r.owner,amount:r.amount,delegate:r.delegate,state:["uninitialized","initialized","frozen"].indexOf(r.state),tlv:null}}}function ds(e,t){var r,o,n,s;const i=new Map;for(const e of t)i.set(e.signature,{signature:e.signature,slot:e.slot,blockTime:e.blockTime,err:null,memo:null,confirmationStatus:void 0,sources:[es.Compressed]});for(const t of e)i.get(t.signature)?i.set(t.signature,{signature:t.signature,slot:t.slot,blockTime:null!==(r=t.blockTime)&&void 0!==r?r:null,err:t.err,memo:null!==(o=t.memo)&&void 0!==o?o:null,confirmationStatus:t.confirmationStatus,sources:[es.Solana,es.Compressed]}):i.set(t.signature,{signature:t.signature,slot:t.slot,blockTime:null!==(n=t.blockTime)&&void 0!==n?n:null,err:t.err,memo:null!==(s=t.memo)&&void 0!==s?s:null,confirmationStatus:t.confirmationStatus,sources:[es.Solana]});return Array.from(i.values()).sort(((e,t)=>t.slot-e.slot))}class hs extends e.Connection{constructor(e,t,r,o){super(e,o||"confirmed"),this.allStateTreeInfos=null,this.lastStateTreeFetchTime=null,this.CACHE_TTL=36e5,this.fetchPromise=null,this.compressionApiEndpoint=t,this.proverEndpoint=r}async getCachedActiveStateTreeInfo(){}async getCachedActiveStateTreeInfos(){}async getStateTreeInfos(){if(le(this.rpcEndpoint))return ze();if(this.allStateTreeInfos&&this.lastStateTreeFetchTime&&Date.now()-this.lastStateTreeFetchTime<=this.CACHE_TTL)return this.allStateTreeInfos;if(this.fetchPromise)return this.fetchPromise;let e;try{return this.fetchPromise=this.doFetch(),e=await this.fetchPromise,this.allStateTreeInfos=e,this.lastStateTreeFetchTime=Date.now(),e}finally{this.fetchPromise=null}}async doFetch(){const{mainnet:e,devnet:t}=ce();try{return await lo({connection:this,stateTreeLUTPairs:[e[0]]})}catch(e){try{return await lo({connection:this,stateTreeLUTPairs:[t[0]]})}catch(t){throw new Error(`Failed to fetch state tree infos from both mainnet and devnet. Mainnet error: ${e}. Devnet error: ${t}`)}}}async getAddressTreeInfoV2(){const t=new e.PublicKey(We);return{tree:t,queue:t,cpiContext:void 0,treeType:exports.TreeType.AddressV2,nextTreeInfo:null}}async getCompressedAccount(t,r){if(!r&&!t)throw new Error("Either hash or address must be provided");if(r&&t)throw new Error("Only one of hash or address must be provided");const o=await this.getStateTreeInfos(),n=await ss(this.compressionApiEndpoint,Z("getCompressedAccount"),{hash:r?ot(r):void 0,address:t?ot(t):void 0});let s;if(s=$.isV2()?Uo(n,hn(Zo(gn))):Uo(n,hn(Zo(yn))),"error"in s)throw new e.SolanaJSONRPCError(s.error,`failed to get info for compressed account ${r?r.toString():t?t.toString():""}`);if(null===s.result.value)return null;const i=ao(o,$.isV2()?s.result.value.merkleContext.tree:s.result.value.tree),a=s.result.value;return it(at(i,a.hash,a.leafIndex),a.owner,nt(a.lamports),a.data?rs(a.data):void 0,a.address||void 0)}async getCompressedBalance(t,r){if(!r&&!t)throw new Error("Either hash or address must be provided");if(r&&t)throw new Error("Only one of hash or address must be provided");const o=Uo(await ss(this.compressionApiEndpoint,"getCompressedBalance",{hash:r?ot(r):void 0,address:t?ot(t):void 0}),hn(Hn));if("error"in o)throw new e.SolanaJSONRPCError(o.error,`failed to get balance for compressed account ${r?r.toString():t?t.toString():""}`);return null===o.result.value?nt(0):nt(o.result.value)}async getCompressedBalanceByOwner(t){const r=Uo(await ss(this.compressionApiEndpoint,"getCompressedBalanceByOwner",{owner:t.toBase58()}),hn(Hn));if("error"in r)throw new e.SolanaJSONRPCError(r.error,`failed to get balance for compressed account ${t.toBase58()}`);return null===r.result.value?nt(0):nt(r.result.value)}async getCompressedAccountProof(t){const r=await ss(this.compressionApiEndpoint,Z("getCompressedAccountProof"),{hash:ot(t)});let o;if(o=$.isV2()?Uo(r,hn(On)):Uo(r,hn(Pn)),"error"in o)throw new e.SolanaJSONRPCError(o.error,`failed to get proof for compressed account ${t.toString()}`);if(null===o.result.value)throw new Error(`failed to get proof for compressed account ${t.toString()}`);const n=ao(await this.getStateTreeInfos(),$.isV2()?o.result.value.treeContext.tree:o.result.value.tree);return{hash:nt(o.result.value.hash.toArray("be",32)),treeInfo:n,leafIndex:o.result.value.leafIndex,merkleProof:o.result.value.proof,rootIndex:o.result.value.rootSeq%2400,root:o.result.value.root,proveByIndex:$.isV2()?o.result.value.proveByIndex:0}}async getMultipleCompressedAccounts(t){const r=await ss(this.compressionApiEndpoint,Z("getMultipleCompressedAccounts"),{hashes:t.map((e=>ot(e)))});let o;if(o=$.isV2()?Uo(r,hn(In)):Uo(r,hn(bn)),"error"in o)throw new e.SolanaJSONRPCError(o.error,`failed to get info for compressed accounts ${t.map((e=>ot(e))).join(", ")}`);if(null===o.result.value)throw new Error(`failed to get info for compressed accounts ${t.map((e=>ot(e))).join(", ")}`);const n=await this.getStateTreeInfos(),s=[];return o.result.value.items.map((e=>{const t=$.isV2()?e.merkleContext.tree:e.tree,r=ao(n,t),o=it(at(r,nt(e.hash.toArray("be",32)),e.leafIndex),e.owner,nt(e.lamports),e.data?rs(e.data):void 0,e.address||void 0);s.push(o)})),s.sort(((e,t)=>t.leafIndex-e.leafIndex))}async getMultipleCompressedAccountProofs(t){const r=await ss(this.compressionApiEndpoint,Z("getMultipleCompressedAccountProofs"),t.map((e=>ot(e))));let o;if(o=$.isV2()?Uo(r,hn(Wo(On))):Uo(r,hn(Wo(Pn))),"error"in o)throw new e.SolanaJSONRPCError(o.error,`failed to get proofs for compressed accounts ${t.map((e=>ot(e))).join(", ")}`);if(null===o.result.value)throw new Error(`failed to get proofs for compressed accounts ${t.map((e=>ot(e))).join(", ")}`);const n=[],s=await this.getStateTreeInfos();for(const e of o.result.value){const t=ao(s,$.isV2()?e.treeContext.tree:e.merkleTree),r={hash:nt(e.hash.toArray("be",32)),treeInfo:t,leafIndex:e.leafIndex,merkleProof:e.proof,rootIndex:e.rootSeq%2400,root:e.root,proveByIndex:$.isV2()?e.proveByIndex:0};n.push(r)}return n}async getCompressedAccountsByOwner(t,r){var o;const n=await ss(this.compressionApiEndpoint,Z("getCompressedAccountsByOwner"),{owner:t.toBase58(),filters:(null==r?void 0:r.filters)||[],dataSlice:null==r?void 0:r.dataSlice,cursor:null==r?void 0:r.cursor,limit:null===(o=null==r?void 0:r.limit)||void 0===o?void 0:o.toNumber()});let s;if(s=$.isV2()?Uo(n,hn(An)):Uo(n,hn(En)),"error"in s)throw new e.SolanaJSONRPCError(s.error,`failed to get info for compressed accounts owned by ${t.toBase58()}`);if(null===s.result.value)return{items:[],cursor:null};const i=[],a=await this.getStateTreeInfos();return s.result.value.items.map((e=>{const t=ao(a,$.isV2()?e.merkleContext.tree:e.tree),r=it(at(t,nt(e.hash.toArray("be",32)),e.leafIndex,$.isV2()?e.proveByIndex:0),e.owner,nt(e.lamports),e.data?rs(e.data):void 0,e.address||void 0);i.push(r)})),{items:i.sort(((e,t)=>t.leafIndex-e.leafIndex)),cursor:s.result.value.cursor}}async getCompressedTokenAccountsByOwner(e,t){return t||(t={}),await os(this,e,t,0)}async getCompressedTokenAccountsByDelegate(e,t){return t||(t={}),await os(this,e,t,1)}async getCompressedTokenAccountBalance(t){const r=Uo(await ss(this.compressionApiEndpoint,"getCompressedTokenAccountBalance",{hash:ot(t)}),hn(Kn));if("error"in r)throw new e.SolanaJSONRPCError(r.error,`failed to get balance for compressed token account ${t.toString()}`);if(null===r.result.value)throw new Error(`failed to get balance for compressed token account ${t.toString()}`);return{amount:nt(r.result.value.amount)}}async getCompressedTokenBalancesByOwner(t,r){var o,n;r||(r={});const s=Uo(await ss(this.compressionApiEndpoint,"getCompressedTokenBalancesByOwner",{owner:t.toBase58(),mint:null===(o=r.mint)||void 0===o?void 0:o.toBase58(),limit:null===(n=r.limit)||void 0===n?void 0:n.toNumber(),cursor:r.cursor}),hn($n));if("error"in s)throw new e.SolanaJSONRPCError(s.error,`failed to get compressed token balances for owner ${t.toBase58()}`);if(null===s.result.value)throw new Error(`failed to get compressed token balances for owner ${t.toBase58()}`);return{items:r.mint?s.result.value.tokenBalances.filter((e=>e.mint.toBase58()===r.mint.toBase58())):s.result.value.tokenBalances,cursor:s.result.value.cursor}}async getCompressedTokenBalancesByOwnerV2(t,r){var o,n;r||(r={});const s=Uo(await ss(this.compressionApiEndpoint,"getCompressedTokenBalancesByOwnerV2",{owner:t.toBase58(),mint:null===(o=r.mint)||void 0===o?void 0:o.toBase58(),limit:null===(n=r.limit)||void 0===n?void 0:n.toNumber(),cursor:r.cursor}),hn(jn));if("error"in s)throw new e.SolanaJSONRPCError(s.error,`failed to get compressed token balances for owner ${t.toBase58()}`);if(null===s.result.value)throw new Error(`failed to get compressed token balances for owner ${t.toBase58()}`);const i=r.mint?s.result.value.items.filter((e=>e.mint.toBase58()===r.mint.toBase58())):s.result.value.items;return{context:s.result.context,value:{items:i,cursor:s.result.value.cursor}}}async getCompressionSignaturesForAccount(t){const r=Uo(await ss(this.compressionApiEndpoint,"getCompressionSignaturesForAccount",{hash:ot(t)}),hn(Gn));if("error"in r)throw new e.SolanaJSONRPCError(r.error,`failed to get signatures for compressed account ${t.toString()}`);return r.result.value.items}async getTransactionWithCompressionInfo(t){const r=await ss(this.compressionApiEndpoint,Z("getTransactionWithCompressionInfo"),{signature:t});let o;if(o=$.isV2()?Uo(r,dn(Yn)):Uo(r,dn(Xn)),"error"in o)throw new e.SolanaJSONRPCError(o.error,"failed to get slot");if(null===o.result.transaction)return null;const n=[],s=[],i=await this.getStateTreeInfos();$.isV2()?(o.result.compressionInfo.closedAccounts.map((e=>{n.push(function(e){const t={account:e.account.account,optionalTokenData:e.optionalTokenData},r={nullifier:e.account.nullifier,txHash:e.account.txHash},o=ls(t);return{account:o.account,maybeTokenData:o.maybeTokenData,maybeNullifierMetadata:r}}(e))})),o.result.compressionInfo.openedAccounts.map((e=>{s.push(ls(e))}))):(o.result.compressionInfo.closedAccounts.map((e=>{const t=ao(i,e.account.tree),r=it(at(t,nt(e.account.hash.toArray("be",32)),e.account.leafIndex),e.account.owner,nt(e.account.lamports),e.account.data?rs(e.account.data):void 0,e.account.address||void 0);n.push({account:r,maybeTokenData:e.optionalTokenData})})),o.result.compressionInfo.openedAccounts.map((e=>{const t=ao(i,e.account.tree),r=it(at(t,nt(e.account.hash.toArray("be",32)),e.account.leafIndex),e.account.owner,nt(e.account.lamports),e.account.data?rs(e.account.data):void 0,e.account.address||void 0);s.push({account:r,maybeTokenData:e.optionalTokenData})})));const a=e=>{const t=Object.values(e.reduce(((e,{maybeTokenData:t})=>{if(t){const{owner:r,mint:o,amount:n}=t,s=`${r.toBase58()}_${o.toBase58()}`;s in e?e[s].amount=e[s].amount.add(n):e[s]={owner:r,mint:o,amount:n}}return e}),{}));return t.length>0?t:void 0},u=a(n),c=a(s);return{compressionInfo:{closedAccounts:n,openedAccounts:s,preTokenBalances:u,postTokenBalances:c},transaction:o.result.transaction}}async getCompressionSignaturesForAddress(t,r){var o;const n=Uo(await ss(this.compressionApiEndpoint,"getCompressionSignaturesForAddress",{address:t.toBase58(),cursor:null==r?void 0:r.cursor,limit:null===(o=null==r?void 0:r.limit)||void 0===o?void 0:o.toNumber()}),hn(Qn));if("error"in n)throw new e.SolanaJSONRPCError(n.error,`failed to get signatures for address ${t.toBase58()}`);if(null===n.result.value)throw new Error(`failed to get signatures for address ${t.toBase58()}`);return n.result.value}async getCompressionSignaturesForOwner(t,r){var o;const n=Uo(await ss(this.compressionApiEndpoint,"getCompressionSignaturesForOwner",{owner:t.toBase58(),cursor:null==r?void 0:r.cursor,limit:null===(o=null==r?void 0:r.limit)||void 0===o?void 0:o.toNumber()}),hn(Qn));if("error"in n)throw new e.SolanaJSONRPCError(n.error,`failed to get signatures for owner ${t.toBase58()}`);if(null===n.result.value)throw new Error(`failed to get signatures for owner ${t.toBase58()}`);return n.result.value}async getCompressionSignaturesForTokenOwner(t,r){var o;const n=Uo(await ss(this.compressionApiEndpoint,"getCompressionSignaturesForTokenOwner",{owner:t.toBase58(),cursor:null==r?void 0:r.cursor,limit:null===(o=null==r?void 0:r.limit)||void 0===o?void 0:o.toNumber()}),hn(Qn));if("error"in n)throw new e.SolanaJSONRPCError(n.error,`failed to get signatures for owner ${t.toBase58()}`);if(null===n.result.value)throw new Error(`failed to get signatures for owner ${t.toBase58()}`);return n.result.value}async getIndexerHealth(){const t=Uo(await ss(this.compressionApiEndpoint,"getIndexerHealth"),dn(Cn));if("error"in t)throw new e.SolanaJSONRPCError(t.error,"failed to get health");return t.result}async confirmTransactionIndexed(e){const t=le(this.rpcEndpoint)?1e4:2e4,r=le(this.rpcEndpoint)?100:200,o=Date.now();for(;;){if(await this.getIndexerSlot()>=e)return 1;if(Date.now()-o>t)throw new Error(`Timeout: Indexer slot did not reach the required slot within ${t/1e3}s`);await new Promise((e=>setTimeout(e,r)))}}async getIndexerSlot(){const t=Uo(await ss(this.compressionApiEndpoint,"getIndexerSlot"),dn(Sn));if("error"in t)throw new e.SolanaJSONRPCError(t.error,"failed to get slot");return t.result}async getCompressedMintTokenHolders(t,r){var o;const n=Uo(await ss(this.compressionApiEndpoint,"getCompressedMintTokenHolders",{mint:t.toBase58(),cursor:null==r?void 0:r.cursor,limit:null===(o=null==r?void 0:r.limit)||void 0===o?void 0:o.toNumber()}),hn(zn));if("error"in n)throw new e.SolanaJSONRPCError(n.error,"failed to get mint token holders");return n.result}async getLatestCompressionSignatures(t,r){const o=Uo(await ss(this.compressionApiEndpoint,"getLatestCompressionSignatures",{limit:r,cursor:t}),hn(_n));if("error"in o)throw new e.SolanaJSONRPCError(o.error,"failed to get latest non-voting signatures");return o.result}async getLatestNonVotingSignatures(t,r){const o=Uo(await ss(this.compressionApiEndpoint,"getLatestNonVotingSignatures",{limit:t,cursor:r}),hn(kn));if("error"in o)throw new e.SolanaJSONRPCError(o.error,"failed to get latest non-voting signatures");return o.result}async getMultipleNewAddressProofs(t){const r=Uo(await ss(this.compressionApiEndpoint,"getMultipleNewAddressProofs",t.map((e=>ot(e)))),hn(Wo(Ln)));if("error"in r)throw new e.SolanaJSONRPCError(r.error,`failed to get proofs for new addresses ${t.map((e=>ot(e))).join(", ")}`);if(null===r.result.value)throw new Error(`failed to get proofs for new addresses ${t.map((e=>ot(e))).join(", ")}`);const o=[];for(const e of r.result.value){const t={root:e.root,rootIndex:e.rootSeq%2400,value:e.address,leafLowerRangeValue:e.lowerRangeAddress,leafHigherRangeValue:e.higherRangeAddress,nextIndex:nt(e.nextIndex),merkleProofHashedIndexedElementLeaf:e.proof,indexHashedIndexedElementLeaf:nt(e.lowElementLeafIndex),treeInfo:{tree:e.merkleTree,queue:me().addressQueue,treeType:exports.TreeType.AddressV1,nextTreeInfo:null}};o.push(t)}return o}async getValidityProof(e=[],t=[]){const r=await this.getMultipleCompressedAccounts(e),o=r.map((e=>e.treeInfo.tree)),n=r.map((e=>e.treeInfo.queue)),s=me().addressTree,i=me().addressQueue,a=e.map(((e,t)=>({hash:e,tree:o[t],queue:n[t]}))),u=t.map((e=>({address:e,tree:s,queue:i})));return this.getValidityProofV0(a,u)}async getValidityProofV0(e=[],t=[]){const{value:r}=await this.getValidityProofAndRpcContext(e,t);return r}async getValidityProofV2(e=[],t=[],r){const o=e.filter((e=>void 0!==e)).map((e=>({hash:e.hash,tree:e.treeInfo.tree,queue:e.treeInfo.queue}))),n=t.map((e=>{let t;if(r===exports.DerivationMode.compressible||void 0===r){const r=Wr(Uint8Array.from(e.address),e.treeInfo.tree,ye);t=nt(r.toBytes())}else t=nt(e.address);return{address:t,tree:e.treeInfo.tree,queue:e.treeInfo.queue}})),{value:s}=await this.getValidityProofAndRpcContext(o,n);return s}async getValidityProofAndRpcContext(t=[],r=[]){Ft(t.length,r.length);const o=Z("getValidityProof"),n=await ss(this.compressionApiEndpoint,o,{hashes:t.map((({hash:e})=>ot(e))),newAddressesWithTrees:r.map((({address:e,tree:t})=>({address:ot(e),tree:t.toBase58()})))}),s=$.isV2();let i;if(i=Uo(n,hn(s?Un:Rn)),"error"in i)throw new e.SolanaJSONRPCError(i.error,`failed to get validity proof for hashes ${t.map((e=>e.hash.toString())).join(", ")}`);if(null===i.result.value)throw new Error(`failed to get validity proof for hashes ${t.map((e=>e.hash.toString())).join(", ")}`);const a=i.result.value;if(s)return{value:{compressedProof:a.compressedProof,leaves:a.accounts.map((e=>e.hash)).concat(a.addresses.map((e=>e.address))),roots:a.accounts.map((e=>e.root)).concat(a.addresses.map((e=>e.root))),rootIndices:a.accounts.map((e=>e.rootIndex.rootIndex)).concat(a.addresses.map((e=>e.rootIndex))),proveByIndices:a.accounts.map((e=>e.rootIndex.proveByIndex)).concat(a.addresses.map((()=>0))),treeInfos:a.accounts.map((e=>e.merkleContext)).concat(a.addresses.map((e=>e.merkleContext))),leafIndices:a.accounts.map((e=>e.leafIndex)).concat(a.addresses.map((()=>0)))},context:i.result.context};{const e=await this.getStateTreeInfos(),t=a.merkleTrees.map((t=>t.equals(me().addressTree)?{tree:t,queue:me().addressQueue,treeType:exports.TreeType.AddressV1,nextTreeInfo:null}:uo(e,t)));return{value:{compressedProof:a.compressedProof,roots:a.roots,rootIndices:a.rootIndices.map((e=>e)),leafIndices:a.leafIndices,leaves:a.leaves,treeInfos:t,proveByIndices:a.rootIndices.map((e=>e.proveByIndex))},context:i.result.context}}}async getAccountInfoInterface(e,r,o,n){z(),n=null!=n?n:de();const s=Wr(e.toBytes(),n.tree,r),[i,a]=await Promise.allSettled([this.getAccountInfo(e,o),this.getCompressedAccount(nt(s.toBytes()))]),u="fulfilled"===i.status?i.value:null,c="fulfilled"===a.status?a.value:null;return u?c?{accountInfo:u,loadContext:{treeInfo:c.treeInfo,hash:c.hash,leafIndex:c.leafIndex,proveByIndex:c.proveByIndex},isCold:0}:{accountInfo:u,loadContext:void 0,isCold:0}:c&&c.data&&c.data.data.length>0?{accountInfo:{executable:0,owner:c.owner,lamports:c.lamports.toNumber(),data:t.Buffer.concat([t.Buffer.from(c.data.discriminator),c.data.data])},loadContext:{treeInfo:c.treeInfo,hash:c.hash,leafIndex:c.leafIndex,proveByIndex:c.proveByIndex},isCold:1}:null}async getSignaturesForAddressInterface(e,t,r){z();const[o,n]=await Promise.allSettled([this.getSignaturesForAddress(e,t),this.getCompressionSignaturesForAddress(e,r)]),s="fulfilled"===o.status?o.value:[],i="fulfilled"===n.status?n.value.items:[];return{signatures:ds(s,i),solana:s,compressed:i}}async getSignaturesForOwnerInterface(e,t,r){z();const[o,n]=await Promise.allSettled([this.getSignaturesForAddress(e,t),this.getCompressionSignaturesForOwner(e,r)]),s="fulfilled"===o.status?o.value:[],i="fulfilled"===n.status?n.value.items:[];return{signatures:ds(s,i),solana:s,compressed:i}}async getTokenAccountBalanceInterface(e,t,r,o){z();const[n,s]=await Promise.allSettled([this.getTokenAccountBalance(e,o),this.getCompressedTokenBalancesByOwner(t,{mint:r})]);let i=nt(0),a=0,u=null;if("fulfilled"===n.status&&n.value){const e=n.value.value;i=nt(e.amount),a=e.decimals,u=e}let c=nt(0);if("fulfilled"===s.status){const e=s.value.items.filter((e=>e.mint.equals(r)));for(const t of e)c=c.add(t.balance)}return{amount:i.add(c),hasColdBalance:!c.isZero(),decimals:a,solana:u}}async getBalanceInterface(e,t){z();const[r,o]=await Promise.allSettled([this.getBalance(e,t),this.getCompressedBalanceByOwner(e)]),n="fulfilled"===r.status?nt(r.value):nt(0),s="fulfilled"===o.status?o.value:nt(0);return{total:n.isZero()?s:n,hasColdBalance:!s.isZero()}}}class ps extends e.Connection{constructor(e,t,r,o,n,s){super(e,n||{commitment:"confirmed"}),this.log=0,this.allStateTreeInfos=null,this.lastStateTreeFetchTime=null,this.fetchPromise=null,this.CACHE_TTL=36e5,this.compressionApiEndpoint=r,this.proverEndpoint=o;const{depth:i,log:a}=null!=s?s:{},{merkleTreeHeight:u}=me();this.lightWasm=t,this.depth=null!=i?i:u,this.log=null!=a?a:0}async getCachedActiveStateTreeInfo(){}async getCachedActiveStateTreeInfos(){}async getStateTreeInfos(){return ze()}async doFetch(){throw new Error("doFetch not supported in test-rpc")}async getAddressTreeInfoV2(){const t=new e.PublicKey(We);return{tree:t,queue:t,cpiContext:void 0,treeType:exports.TreeType.AddressV2,nextTreeInfo:null}}async getCompressedAccount(e,t){if(e)throw new Error("address is not supported in test-rpc");if(!t)throw new Error("hash is required");const r=await Ao(this,t);return null!=r?r:null}async getCompressedBalance(e,t){if(e)throw new Error("address is not supported in test-rpc");if(!t)throw new Error("hash is required");const r=await Ao(this,t);if(!r)throw new Error("Account not found");return nt(r.lamports)}async getCompressedBalanceByOwner(e){return(await this.getCompressedAccountsByOwner(e)).items.reduce(((e,t)=>e.add(t.lamports)),nt(0))}async getCompressedAccountProof(e){return(await this.getMultipleCompressedAccountProofs([e]))[0]}async getMultipleCompressedAccounts(e){return await async function(e,t){return(await To(e)).filter((e=>t.some((t=>nt(e.hash).eq(t))))).sort(((e,t)=>t.leafIndex-e.leafIndex))}(this,e)}async confirmTransactionIndexed(e){return 1}async getMultipleCompressedAccountProofs(t){const r=await xo(this).then((e=>e.reverse())),o=new Map,n=await this.getStateTreeInfos();for(const e of r)for(let t=0;t<e.outputCompressedAccounts.length;t++){const r=e.outputCompressedAccountHashes[t],s=ao(n,e.pubkeyArray[e.outputCompressedAccounts[t].merkleTreeIndex]);o.has(s.tree.toBase58())||o.set(s.tree.toBase58(),{leaves:[],leafIndices:[],treeInfo:s});const i=o.get(s.tree.toBase58());if(!i)throw new Error(`Tree not found: ${s.tree.toBase58()}`);i.leaves.push(r),i.leafIndices.push(e.outputLeafIndices[t])}const s=new Map;for(const[r,{leaves:n,treeInfo:i}]of o.entries()){const a=new e.PublicKey(r);let u;if(i.treeType===exports.TreeType.StateV1)u=new vo(this.depth,this.lightWasm,n.map((e=>nt(e).toString())));else{if(i.treeType!==exports.TreeType.StateV2)throw new Error(`Invalid tree type: ${i.treeType} in test-rpc.ts`);u=new vo(32,this.lightWasm,[])}for(let e=0;e<t.length;e++){const r=n.findIndex((r=>nt(r).eq(t[e])));if(-1!==r)if(i.treeType===exports.TreeType.StateV1){const o=u.path(r).pathElements.map((e=>nt(e))),a=nt(u.root()),c={hash:nt(t[e].toArray("be",32)),treeInfo:i,leafIndex:r,merkleProof:o,proveByIndex:0,rootIndex:n.length,root:a};s.set(t[e].toString(),c)}else if(i.treeType===exports.TreeType.StateV2){const r=u._zeros.slice(0,-1).map((e=>nt(e))),n=nt(u.root()),c=o.get(a.toBase58()).leafIndices.findIndex((r=>t[e].eq(nt(o.get(a.toBase58()).leaves[r])))),l={hash:nt(t[e].toArray("be",32)),treeInfo:i,leafIndex:c,merkleProof:r,proveByIndex:1,rootIndex:0,root:n};s.set(t[e].toString(),l)}}}if(s.forEach(((e,t)=>{if(e.treeInfo.treeType===exports.TreeType.StateV1){const r=e.leafIndex,n=o.get(e.treeInfo.tree.toBase58()).leaves[r],s=nt(n);if(!s.eq(e.hash))throw new Error(`Mismatch at index ${t}: expected ${e.hash.toString()}, got ${s.toString()}`)}})),new Set(t.map((e=>{const t=s.get(e.toString());if(!t)throw new Error(`Proof not found for hash: ${e.toString()}`);return t.treeInfo.treeType}))).size>1)throw new Error("Requested hashes belong to different tree types (V1/V2)");return t.map((e=>{const t=s.get(e.toString());if(!t)throw new Error(`No proof found for hash: ${e.toString()}`);return t}))}async getCompressedAccountsByOwner(e,t){const r=await async function(e,t){return(await To(e)).filter((e=>e.owner.equals(t)))}(this,e);return{items:r,cursor:null}}async getLatestCompressionSignatures(e,t){throw new Error("getLatestNonVotingSignaturesWithContext not supported in test-rpc")}async getLatestNonVotingSignatures(e){throw new Error("getLatestNonVotingSignaturesWithContext not supported in test-rpc")}async getCompressedTokenAccountsByOwner(e,t){return await Co(this,e,t.mint)}async getCompressedTokenAccountsByDelegate(e,t){return await ko(this,e,t.mint)}async getCompressedTokenAccountBalance(e){const t=await _o(this,e);return{amount:nt(t.parsed.amount)}}async getCompressedTokenBalancesByOwner(e,t){return{items:(await Co(this,e,t.mint)).items.map((e=>({balance:nt(e.parsed.amount),mint:e.parsed.mint}))),cursor:null}}async getCompressedTokenBalancesByOwnerV2(e,t){return{context:{slot:1},value:{items:(await Co(this,e,t.mint)).items.map((e=>({balance:nt(e.parsed.amount),mint:e.parsed.mint}))),cursor:null}}}async getCompressionSignaturesForAccount(e){throw new Error("getCompressionSignaturesForAccount not implemented in test-rpc")}async getTransactionWithCompressionInfo(e){throw new Error("getCompressedTransaction not implemented in test-rpc")}async getCompressionSignaturesForAddress(e,t){throw new Error("getSignaturesForAddress3 not implemented")}async getCompressionSignaturesForOwner(e,t){throw new Error("getSignaturesForOwner not implemented")}async getCompressionSignaturesForTokenOwner(e,t){throw new Error("getSignaturesForTokenOwner not implemented")}async getIndexerHealth(){return"ok"}async getIndexerSlot(){return 1}async getMultipleNewAddressProofs(e){const t=wo.default(),r=[];t.init();const o=[];for(let e=0;e<r.length;e++)t.append(nt(r[e]));for(let e=0;e<t.elements.length;e++){const r=t.hashElement(this.lightWasm,e);o.push(nt(r))}const n=new vo(this.depth,this.lightWasm,o.map((e=>nt(e).toString()))),s=[];for(let r=0;r<e.length;r++){const[o]=t.findLowElement(e[r]);if(!o)throw new Error("Address not found");const i=o.index,a=n.path(i).pathElements.map((e=>nt(e))),u=t.get(o.nextIndex).value,c={root:nt(n.root()),rootIndex:3,value:e[r],leafLowerRangeValue:o.value,leafHigherRangeValue:u,nextIndex:nt(o.nextIndex),merkleProofHashedIndexedElementLeaf:a,indexHashedIndexedElementLeaf:nt(o.index),treeInfo:{tree:me().addressTree,queue:me().addressQueue,treeType:exports.TreeType.AddressV1,nextTreeInfo:null}};s.push(c)}return s}async getCompressedMintTokenHolders(e,t){throw new Error("getCompressedMintTokenHolders not implemented in test-rpc")}async getValidityProofAndRpcContext(e=[],t=[]){if(t.some((e=>!(e instanceof W))))throw new Error("AddressWithTree is not supported in test-rpc");return{value:await this.getValidityProofV0(e,t),context:{slot:1}}}async getValidityProof(e=[],t=[]){if(t.some((e=>!(e instanceof W))))throw new Error("AddressWithTree is not supported in test-rpc");let r;const o=[];if(0===e.length&&0===t.length)throw new Error("Empty input. Provide hashes and/or new addresses.");if(e.length>0&&0===t.length){for(const t of e){const e=await this.getCompressedAccount(void 0,t);if(!e)throw new Error("Account not found");o.push(e.treeInfo)}const t=o.some((e=>e.treeType===exports.TreeType.StateV1)),n=await this.getMultipleCompressedAccountProofs(e);if(t){const e=as(n);r={compressedProof:await is(this.proverEndpoint,"inclusion",e,this.log),roots:n.map((e=>e.root)),rootIndices:n.map((e=>e.rootIndex)),leafIndices:n.map((e=>e.leafIndex)),leaves:n.map((e=>nt(e.hash))),treeInfos:n.map((e=>e.treeInfo)),proveByIndices:n.map((e=>e.proveByIndex))}}else r={compressedProof:null,roots:n.map((()=>nt(0))),rootIndices:n.map((e=>e.rootIndex)),leafIndices:n.map((e=>e.leafIndex)),leaves:n.map((e=>nt(e.hash))),treeInfos:n.map((e=>e.treeInfo)),proveByIndices:n.map((e=>e.proveByIndex))}}else if(0===e.length&&t.length>0){const e=await this.getMultipleNewAddressProofs(t),o=us(e);r={compressedProof:await is(this.proverEndpoint,"new-address",o,this.log),roots:e.map((e=>e.root)),rootIndices:e.map((()=>3)),leafIndices:e.map((e=>e.indexHashedIndexedElementLeaf.toNumber())),leaves:e.map((e=>nt(e.value))),treeInfos:e.map((e=>e.treeInfo)),proveByIndices:e.map((()=>0))}}else{if(!(e.length>0&&t.length>0))throw new Error("Invalid input");{const o=await this.getMultipleCompressedAccountProofs(e),n=await this.getMultipleNewAddressProofs(t),s=o.map((e=>e.treeInfo)).some((e=>e.treeType===exports.TreeType.StateV1)),i=us(n);let a;if(s){const e=as(o);a=await is(this.proverEndpoint,"combined",[e,i],1)}else a=await is(this.proverEndpoint,"new-address",i,1);r={compressedProof:a,roots:o.map((e=>s?e.root:nt(0))).concat(n.map((e=>e.root))),rootIndices:o.map((e=>e.rootIndex)).concat(n.map((()=>3))),leafIndices:o.map((e=>e.leafIndex)).concat(n.map((e=>e.indexHashedIndexedElementLeaf.toNumber()))),leaves:o.map((e=>nt(e.hash))).concat(n.map((e=>nt(e.value)))),treeInfos:o.map((e=>e.treeInfo)).concat(n.map((e=>e.treeInfo))),proveByIndices:o.map((e=>e.proveByIndex)).concat(n.map((()=>0)))}}}return r}async getValidityProofV0(e=[],t=[]){return this.getValidityProof(e.map((e=>e.hash)),t.map((e=>e.address)))}async getValidityProofV2(e=[],t=[],r){const o=e.filter((e=>void 0!==e)).map((e=>({hash:e.hash,tree:e.treeInfo.tree,queue:e.treeInfo.queue}))),n=t.map((e=>({address:e.address,tree:e.treeInfo.tree,queue:e.treeInfo.queue})));return this.getValidityProofV0(o,n)}async getAccountInfoInterface(e,t,r){throw new Error("getAccountInfoInterface not implemented in TestRpc")}async getSignaturesForAddressInterface(e,t,r){throw new Error("getSignaturesForAddressInterface not implemented in TestRpc")}async getSignaturesForOwnerInterface(e,t,r){throw new Error("getSignaturesForOwnerInterface not implemented in TestRpc")}async getTokenAccountBalanceInterface(e,t,r,o){throw new Error("getTokenAccountBalanceInterface not implemented in TestRpc")}async getBalanceInterface(e,t){throw new Error("getBalanceInterface not implemented in TestRpc")}}let ms=1;const fs=vs(255),ys=vs(254),gs=vs(253),ws=vs(252);function vs(t){if(t||(t=ms,ms++),t>255)return e.Keypair.generate();const r=new Uint8Array(32);return r[31]=t,e.Keypair.fromSeed(r)}var xs,bs,Is,Es,As,Ts,Ms,Ss;exports.UtxoErrorCode=void 0,(xs=exports.UtxoErrorCode||(exports.UtxoErrorCode={})).NEGATIVE_LAMPORTS="NEGATIVE_LAMPORTS",xs.NOT_U64="NOT_U64",xs.BLINDING_EXCEEDS_FIELD_SIZE="BLINDING_EXCEEDS_FIELD_SIZE",exports.SelectInUtxosErrorCode=void 0,(bs=exports.SelectInUtxosErrorCode||(exports.SelectInUtxosErrorCode={})).FAILED_TO_FIND_UTXO_COMBINATION="FAILED_TO_FIND_UTXO_COMBINATION",bs.INVALID_NUMBER_OF_IN_UTXOS="INVALID_NUMBER_OF_IN_UTXOS",exports.CreateUtxoErrorCode=void 0,(Is=exports.CreateUtxoErrorCode||(exports.CreateUtxoErrorCode={})).OWNER_UNDEFINED="OWNER_UNDEFINED",Is.INVALID_OUTPUT_UTXO_LENGTH="INVALID_OUTPUT_UTXO_LENGTH",Is.UTXO_DATA_UNDEFINED="UTXO_DATA_UNDEFINED",exports.RpcErrorCode=void 0,(Es=exports.RpcErrorCode||(exports.RpcErrorCode={})).CONNECTION_UNDEFINED="CONNECTION_UNDEFINED",Es.RPC_PUBKEY_UNDEFINED="RPC_PUBKEY_UNDEFINED",Es.RPC_METHOD_NOT_IMPLEMENTED="RPC_METHOD_NOT_IMPLEMENTED",Es.RPC_INVALID="RPC_INVALID",exports.LookupTableErrorCode=void 0,(As=exports.LookupTableErrorCode||(exports.LookupTableErrorCode={})).LOOK_UP_TABLE_UNDEFINED="LOOK_UP_TABLE_UNDEFINED",As.LOOK_UP_TABLE_NOT_INITIALIZED="LOOK_UP_TABLE_NOT_INITIALIZED",exports.HashErrorCode=void 0,(exports.HashErrorCode||(exports.HashErrorCode={})).NO_POSEIDON_HASHER_PROVIDED="NO_POSEIDON_HASHER_PROVIDED",exports.ProofErrorCode=void 0,(Ts=exports.ProofErrorCode||(exports.ProofErrorCode={})).INVALID_PROOF="INVALID_PROOF",Ts.PROOF_INPUT_UNDEFINED="PROOF_INPUT_UNDEFINED",Ts.PROOF_GENERATION_FAILED="PROOF_GENERATION_FAILED",exports.MerkleTreeErrorCode=void 0,(Ms=exports.MerkleTreeErrorCode||(exports.MerkleTreeErrorCode={})).MERKLE_TREE_NOT_INITIALIZED="MERKLE_TREE_NOT_INITIALIZED",Ms.SOL_MERKLE_TREE_UNDEFINED="SOL_MERKLE_TREE_UNDEFINED",Ms.MERKLE_TREE_UNDEFINED="MERKLE_TREE_UNDEFINED",Ms.INPUT_UTXO_NOT_INSERTED_IN_MERKLE_TREE="INPUT_UTXO_NOT_INSERTED_IN_MERKLE_TREE",Ms.MERKLE_TREE_INDEX_UNDEFINED="MERKLE_TREE_INDEX_UNDEFINED",Ms.MERKLE_TREE_SET_SPACE_UNDEFINED="MERKLE_TREE_SET_SPACE_UNDEFINED",exports.UtilsErrorCode=void 0,(Ss=exports.UtilsErrorCode||(exports.UtilsErrorCode={})).ACCOUNT_NAME_UNDEFINED_IN_IDL="ACCOUNT_NAME_UNDEFINED_IN_IDL",Ss.PROPERTY_UNDEFINED="PROPERTY_UNDEFINED",Ss.LOOK_UP_TABLE_CREATION_FAILED="LOOK_UP_TABLE_CREATION_FAILED",Ss.UNSUPPORTED_ARCHITECTURE="UNSUPPORTED_ARCHITECTURE",Ss.UNSUPPORTED_PLATFORM="UNSUPPORTED_PLATFORM",Ss.ACCOUNTS_UNDEFINED="ACCOUNTS_UNDEFINED",Ss.INVALID_NUMBER="INVALID_NUMBER";class Cs extends Error{constructor(e,t,r){super(`${e}: ${r}`),this.code=e,this.functionName=t,this.codeMessage=r}}exports.ADDRESS_QUEUE_ROLLOVER_FEE=Je,exports.ADDRESS_TREE_NETWORK_FEE_V1=Ye,exports.ADDRESS_TREE_NETWORK_FEE_V2=et,exports.ALICE=fs,exports.AccountProofResult=Zn,exports.AppendLeavesInputLayout=kt,exports.AppendNullifyCreateAddressInputsMetaLayout=Ct,exports.BETA_REQUIRED_ERROR=j,exports.BOB=ys,exports.BalanceResult=Kn,exports.CHARLIE=gs,exports.COMPRESSED_TOKEN_PROGRAM_ID=fe,exports.COMPUTE_BUDGET_PATTERN=J,exports.CTOKEN_PROGRAM_ID=ye,exports.CompressedAccountLayout=ut,exports.CompressedAccountResult=yn,exports.CompressedAccountResultV2=gn,exports.CompressedAccountsByOwnerResult=En,exports.CompressedAccountsByOwnerResultV2=An,exports.CompressedCpiContextLayout=ft,exports.CompressedMintTokenHoldersResult=zn,exports.CompressedProofLayout=mt,exports.CompressedTokenAccountResult=vn,exports.CompressedTokenAccountResultV2=xn,exports.CompressedTokenAccountsByOwnerOrDelegateResult=Tn,exports.CompressedTokenAccountsByOwnerOrDelegateResultV2=Mn,exports.CompressedTransactionResult=Xn,exports.CompressedTransactionResultV2=Yn,exports.CreateUtxoError=class extends Cs{},exports.DAVE=ws,exports.DEFAULT_MERKLE_TREE_HEIGHT=Ze,exports.DEFAULT_MERKLE_TREE_ROOTS=2800,exports.DEFAULT_ZERO="0",exports.FIELD_SIZE=G,exports.HIGHEST_ADDRESS_PLUS_ONE=Q,exports.HashError=class extends Cs{},exports.HealthResult=Cn,exports.IDL={version:"1.2.0",name:"light_system_program",constants:[{name:"SOL_POOL_PDA_SEED",type:"bytes",value:"[115, 111, 108, 95, 112, 111, 111, 108, 95, 112, 100, 97]"}],instructions:[{name:"initCpiContextAccount",accounts:[{name:"feePayer",isMut:1,isSigner:1},{name:"cpiContextAccount",isMut:1,isSigner:0},{name:"associatedMerkleTree",isMut:0,isSigner:0}],args:[]},{name:"invoke",accounts:[{name:"feePayer",isMut:1,isSigner:1,docs:["Fee payer needs to be mutable to pay rollover and protocol fees."]},{name:"authority",isMut:0,isSigner:1},{name:"registeredProgramPda",isMut:0,isSigner:0},{name:"noopProgram",isMut:0,isSigner:0},{name:"accountCompressionAuthority",isMut:0,isSigner:0,docs:["This pda is used to invoke the account compression program."]},{name:"accountCompressionProgram",isMut:0,isSigner:0,docs:["Merkle trees."]},{name:"solPoolPda",isMut:1,isSigner:0,isOptional:1,docs:["Sol pool pda is used to store the native sol that has been compressed.","It's only required when compressing or decompressing sol."]},{name:"decompressionRecipient",isMut:1,isSigner:0,isOptional:1,docs:["Only needs to be provided for decompression as a recipient for the","decompressed sol.","Compressed sol originate from authority."]},{name:"systemProgram",isMut:0,isSigner:0}],args:[{name:"inputs",type:"bytes"}]},{name:"invokeCpi",accounts:[{name:"feePayer",isMut:1,isSigner:1,docs:["Fee payer needs to be mutable to pay rollover and protocol fees."]},{name:"authority",isMut:0,isSigner:1},{name:"registeredProgramPda",isMut:0,isSigner:0},{name:"noopProgram",isMut:0,isSigner:0},{name:"accountCompressionAuthority",isMut:0,isSigner:0},{name:"accountCompressionProgram",isMut:0,isSigner:0},{name:"invokingProgram",isMut:0,isSigner:0},{name:"solPoolPda",isMut:1,isSigner:0,isOptional:1},{name:"decompressionRecipient",isMut:1,isSigner:0,isOptional:1},{name:"systemProgram",isMut:0,isSigner:0},{name:"cpiContextAccount",isMut:1,isSigner:0,isOptional:1}],args:[{name:"inputs",type:"bytes"}]},{name:"invokeCpiWithReadOnly",accounts:[{name:"feePayer",isMut:1,isSigner:1,docs:["Fee payer needs to be mutable to pay rollover and protocol fees."]},{name:"authority",isMut:0,isSigner:1},{name:"registeredProgramPda",isMut:0,isSigner:0},{name:"noopProgram",isMut:0,isSigner:0},{name:"accountCompressionAuthority",isMut:0,isSigner:0},{name:"accountCompressionProgram",isMut:0,isSigner:0},{name:"invokingProgram",isMut:0,isSigner:0},{name:"solPoolPda",isMut:1,isSigner:0,isOptional:1},{name:"decompressionRecipient",isMut:1,isSigner:0,isOptional:1},{name:"systemProgram",isMut:0,isSigner:0},{name:"cpiContextAccount",isMut:1,isSigner:0,isOptional:1}],args:[{name:"inputs",type:"bytes"}]},{name:"stubIdlBuild",docs:["This function is a stub to allow Anchor to include the input types in","the IDL. It should not be included in production builds nor be called in","practice."],accounts:[{name:"feePayer",isMut:1,isSigner:1,docs:["Fee payer needs to be mutable to pay rollover and protocol fees."]},{name:"authority",isMut:0,isSigner:1},{name:"registeredProgramPda",isMut:0,isSigner:0},{name:"noopProgram",isMut:0,isSigner:0},{name:"accountCompressionAuthority",isMut:0,isSigner:0,docs:["This pda is used to invoke the account compression program."]},{name:"accountCompressionProgram",isMut:0,isSigner:0,docs:["Merkle trees."]},{name:"solPoolPda",isMut:1,isSigner:0,isOptional:1,docs:["Sol pool pda is used to store the native sol that has been compressed.","It's only required when compressing or decompressing sol."]},{name:"decompressionRecipient",isMut:1,isSigner:0,isOptional:1,docs:["Only needs to be provided for decompression as a recipient for the","decompressed sol.","Compressed sol originate from authority."]},{name:"systemProgram",isMut:0,isSigner:0}],args:[{name:"inputs1",type:{defined:"InstructionDataInvoke"}},{name:"inputs2",type:{defined:"InstructionDataInvokeCpi"}},{name:"inputs3",type:{defined:"PublicTransactionEvent"}}]}],accounts:[{name:"cpiContextAccount",docs:["Collects instruction data without executing a compressed transaction.","Signer checks are performed on instruction data.","Collected instruction data is combined with the instruction data of the executing cpi,","and executed as a single transaction.","This enables to use input compressed accounts that are owned by multiple programs,","with one zero-knowledge proof."],type:{kind:"struct",fields:[{name:"feePayer",type:"publicKey"},{name:"associatedMerkleTree",type:"publicKey"},{name:"context",type:{vec:{defined:"InstructionDataInvokeCpi"}}}]}}],types:[{name:"InstructionDataInvoke",type:{kind:"struct",fields:[{name:"proof",type:{option:{defined:"CompressedProof"}}},{name:"inputCompressedAccountsWithMerkleContext",type:{vec:{defined:"PackedCompressedAccountWithMerkleContext"}}},{name:"outputCompressedAccounts",type:{vec:{defined:"OutputCompressedAccountWithPackedContext"}}},{name:"relayFee",type:{option:"u64"}},{name:"newAddressParams",type:{vec:{defined:"NewAddressParamsPacked"}}},{name:"compressOrDecompressLamports",type:{option:"u64"}},{name:"isCompress",type:"bool"}]}},{name:"NewAddressParamsPacked",type:{kind:"struct",fields:[{name:"seed",type:{array:["u8",32]}},{name:"addressQueueAccountIndex",type:"u8"},{name:"addressMerkleTreeAccountIndex",type:"u8"},{name:"addressMerkleTreeRootIndex",type:"u16"}]}},{name:"OutputCompressedAccountWithPackedContext",type:{kind:"struct",fields:[{name:"compressedAccount",type:{defined:"CompressedAccount"}},{name:"merkleTreeIndex",type:"u8"}]}},{name:"CompressedProof",type:{kind:"struct",fields:[{name:"a",type:{array:["u8",32]}},{name:"b",type:{array:["u8",64]}},{name:"c",type:{array:["u8",32]}}]}},{name:"InstructionDataInvokeCpi",type:{kind:"struct",fields:[{name:"proof",type:{option:{defined:"CompressedProof"}}},{name:"newAddressParams",type:{vec:{defined:"NewAddressParamsPacked"}}},{name:"inputCompressedAccountsWithMerkleContext",type:{vec:{defined:"PackedCompressedAccountWithMerkleContext"}}},{name:"outputCompressedAccounts",type:{vec:{defined:"OutputCompressedAccountWithPackedContext"}}},{name:"relayFee",type:{option:"u64"}},{name:"compressOrDecompressLamports",type:{option:"u64"}},{name:"isCompress",type:"bool"},{name:"cpiContext",type:{option:{defined:"CompressedCpiContext"}}}]}},{name:"CompressedCpiContext",type:{kind:"struct",fields:[{name:"setContext",docs:["Is set by the program that is invoking the CPI to signal that is should","set the cpi context."],type:"bool"},{name:"firstSetContext",docs:["Is set to wipe the cpi context since someone could have set it before","with unrelated data."],type:"bool"},{name:"cpiContextAccountIndex",docs:["Index of cpi context account in remaining accounts."],type:"u8"}]}},{name:"CompressedAccount",type:{kind:"struct",fields:[{name:"owner",type:"publicKey"},{name:"lamports",type:"u64"},{name:"address",type:{option:{array:["u8",32]}}},{name:"data",type:{option:{defined:"CompressedAccountData"}}}]}},{name:"CompressedAccountData",type:{kind:"struct",fields:[{name:"discriminator",type:{array:["u8",8]}},{name:"data",type:"bytes"},{name:"dataHash",type:{array:["u8",32]}}]}},{name:"PackedCompressedAccountWithMerkleContext",type:{kind:"struct",fields:[{name:"compressedAccount",type:{defined:"CompressedAccount"}},{name:"merkleContext",type:{defined:"PackedMerkleContext"}},{name:"rootIndex",docs:["Index of root used in inclusion validity proof."],type:"u16"},{name:"readOnly",docs:["Placeholder to mark accounts read-only unimplemented set to false."],type:"bool"}]}},{name:"PackedMerkleContext",type:{kind:"struct",fields:[{name:"merkleTreePubkeyIndex",type:"u8"},{name:"queuePubkeyIndex",type:"u8"},{name:"leafIndex",type:"u32"},{name:"proveByIndex",type:"bool"}]}},{name:"MerkleTreeSequenceNumber",type:{kind:"struct",fields:[{name:"pubkey",type:"publicKey"},{name:"seq",type:"u64"}]}},{name:"PublicTransactionEvent",type:{kind:"struct",fields:[{name:"inputCompressedAccountHashes",type:{vec:{array:["u8",32]}}},{name:"outputCompressedAccountHashes",type:{vec:{array:["u8",32]}}},{name:"outputCompressedAccounts",type:{vec:{defined:"OutputCompressedAccountWithPackedContext"}}},{name:"outputLeafIndices",type:{vec:"u32"}},{name:"sequenceNumbers",type:{vec:{defined:"MerkleTreeSequenceNumber"}}},{name:"relayFee",type:{option:"u64"}},{name:"isCompress",type:"bool"},{name:"compressOrDecompressLamports",type:{option:"u64"}},{name:"pubkeyArray",type:{vec:"publicKey"}},{name:"message",type:{option:"bytes"}}]}}],errors:[{code:6e3,name:"SumCheckFailed",msg:"Sum check failed"},{code:6001,name:"SignerCheckFailed",msg:"Signer check failed"},{code:6002,name:"CpiSignerCheckFailed",msg:"Cpi signer check failed"},{code:6003,name:"ComputeInputSumFailed",msg:"Computing input sum failed."},{code:6004,name:"ComputeOutputSumFailed",msg:"Computing output sum failed."},{code:6005,name:"ComputeRpcSumFailed",msg:"Computing rpc sum failed."},{code:6006,name:"InvalidAddress",msg:"InvalidAddress"},{code:6007,name:"DeriveAddressError",msg:"DeriveAddressError"},{code:6008,name:"CompressedSolPdaUndefinedForCompressSol",msg:"CompressedSolPdaUndefinedForCompressSol"},{code:6009,name:"DecompressLamportsUndefinedForCompressSol",msg:"DecompressLamportsUndefinedForCompressSol"},{code:6010,name:"CompressedSolPdaUndefinedForDecompressSol",msg:"CompressedSolPdaUndefinedForDecompressSol"},{code:6011,name:"DeCompressLamportsUndefinedForDecompressSol",msg:"DeCompressLamportsUndefinedForDecompressSol"},{code:6012,name:"DecompressRecipientUndefinedForDecompressSol",msg:"DecompressRecipientUndefinedForDecompressSol"},{code:6013,name:"WriteAccessCheckFailed",msg:"WriteAccessCheckFailed"},{code:6014,name:"InvokingProgramNotProvided",msg:"InvokingProgramNotProvided"},{code:6015,name:"InvalidCapacity",msg:"InvalidCapacity"},{code:6016,name:"InvalidMerkleTreeOwner",msg:"InvalidMerkleTreeOwner"},{code:6017,name:"ProofIsNone",msg:"ProofIsNone"},{code:6018,name:"ProofIsSome",msg:"Proof is some but no input compressed accounts or new addresses provided."},{code:6019,name:"EmptyInputs",msg:"EmptyInputs"},{code:6020,name:"CpiContextAccountUndefined",msg:"CpiContextAccountUndefined"},{code:6021,name:"CpiContextEmpty",msg:"CpiContextEmpty"},{code:6022,name:"CpiContextMissing",msg:"CpiContextMissing"},{code:6023,name:"DecompressionRecipientDefined",msg:"DecompressionRecipientDefined"},{code:6024,name:"SolPoolPdaDefined",msg:"SolPoolPdaDefined"},{code:6025,name:"AppendStateFailed",msg:"AppendStateFailed"},{code:6026,name:"InstructionNotCallable",msg:"The instruction is not callable"},{code:6027,name:"CpiContextFeePayerMismatch",msg:"CpiContextFeePayerMismatch"},{code:6028,name:"CpiContextAssociatedMerkleTreeMismatch",msg:"CpiContextAssociatedMerkleTreeMismatch"},{code:6029,name:"NoInputs",msg:"NoInputs"},{code:6030,name:"InputMerkleTreeIndicesNotInOrder",msg:"Input merkle tree indices are not in ascending order."},{code:6031,name:"OutputMerkleTreeIndicesNotInOrder",msg:"Output merkle tree indices are not in ascending order."},{code:6032,name:"OutputMerkleTreeNotUnique"},{code:6033,name:"DataFieldUndefined"},{code:6034,name:"ReadOnlyAddressAlreadyExists"},{code:6035,name:"ReadOnlyAccountDoesNotExist"},{code:6036,name:"HashChainInputsLenghtInconsistent"},{code:6037,name:"InvalidAddressTreeHeight"},{code:6038,name:"InvalidStateTreeHeight"}]},exports.INSERT_INTO_QUEUES_DISCRIMINATOR=re,exports.INVOKE_CPI_DISCRIMINATOR=Y,exports.INVOKE_CPI_WITH_ACCOUNT_INFO_DISCRIMINATOR=te,exports.INVOKE_CPI_WITH_READ_ONLY_DISCRIMINATOR=ee,exports.INVOKE_DISCRIMINATOR=X,exports.InAccountLayout=wt,exports.IndexedArray=wo,exports.IndexedElement=yo,exports.IndexedElementBundle=go,exports.InsertAddressInputLayout=Pt,exports.InsertNullifierInputLayout=_t,exports.InstructionDataInvokeCpiLayout=pt,exports.InstructionDataInvokeCpiWithReadOnlyLayout=bt,exports.InstructionDataInvokeLayout=dt,exports.LatestNonVotingSignaturesResult=kn,exports.LatestNonVotingSignaturesResultPaginated=_n,exports.LightSystemProgram=mo,exports.LookupTableError=class extends Cs{},exports.MerkleContextLayout=ct,exports.MerkleProofResult=Pn,exports.MerkleProofResultV2=On,exports.MerkleTree=vo,exports.MerkleTreeError=class extends Cs{},exports.MerkleTreeSequenceNumberLayout=Ot,exports.MultipleCompressedAccountsResult=bn,exports.MultipleCompressedAccountsResultV2=In,exports.MultipleMerkleProofsResult=qn,exports.MultipleMerkleProofsResultV2=Fn,exports.NativeBalanceResult=Hn,exports.NewAddressParamsAssignedPackedLayout=yt,exports.NewAddressParamsLayout=lt,exports.NewAddressProofResult=Ln,exports.PackedAccounts=Zr,exports.PackedMerkleContextLayout=gt,exports.PackedReadOnlyAddressLayout=vt,exports.PackedReadOnlyCompressedAccountLayout=xt,exports.ProofError=class extends Cs{},exports.PublicTransactionEventLayout=Mt,exports.RootIndexResultV2=Bn,exports.Rpc=hs,exports.RpcError=class extends Cs{},exports.STATE_MERKLE_TREE_NETWORK_FEE=Xe,exports.STATE_MERKLE_TREE_ROLLOVER_FEE=Qe,exports.SelectInUtxosError=class extends Cs{},exports.SignatureListResult=Gn,exports.SignatureListWithCursorResult=Qn,exports.SignatureSource=es,exports.SlotResult=Sn,exports.SystemAccountMetaConfig=Gr,exports.TRANSACTION_MERKLE_TREE_ROLLOVER_THRESHOLD=Ge,exports.TestRpc=ps,exports.TokenBalanceListResult=$n,exports.TokenBalanceListResultV2=jn,exports.TokenBalanceResult=Wn,exports.TokenDataResult=wn,exports.UTXO_MERGE_MAXIMUM=10,exports.UTXO_MERGE_THRESHOLD=20,exports.UtilsError=class extends Cs{},exports.UtxoError=class extends Cs{},exports.ValidityProofResult=Rn,exports.ValidityProofResultV2=Un,exports.accountCompressionProgram=se,exports.addressQueue=Te,exports.addressTree=Ae,exports.airdropSol=async function({connection:e,lamports:t,recipientPublicKey:r}){const o=await e.requestAirdrop(r,t);return await jr(e,o),o},exports.assertBetaEnabled=z,exports.batchAddressTree=We,exports.batchCpiContext1=Pe,exports.batchCpiContext2=Ne,exports.batchCpiContext3=De,exports.batchCpiContext4=qe,exports.batchCpiContext5=He,exports.batchMerkleTree=$e,exports.batchMerkleTree1=ke,exports.batchMerkleTree2=Oe,exports.batchMerkleTree3=Be,exports.batchMerkleTree4=Ve,exports.batchMerkleTree5=Fe,exports.batchQueue=je,exports.batchQueue1=_e,exports.batchQueue2=Le,exports.batchQueue3=Re,exports.batchQueue4=Ue,exports.batchQueue5=Ke,exports.bn=nt,exports.bufToDecStr=e=>rt(e).toString(),exports.buildAndSignTx=io,exports.buildTx=oo,exports.byteArrayToKeypair=function(t){return e.Keypair.fromSecretKey(Uint8Array.from(t))},exports.calculateComputeUnitPrice=function(e,t){return Math.ceil(1e6*e/t)},exports.checkValidityProofShape=e=>{if(32!==e.a.length||64!==e.b.length||32!==e.c.length)throw new Error("ValidityProof has invalid shape")},exports.compress=async function(t,r,o,n,s,i){const{blockhash:a}=await t.getLatestBlockhash();s||(s=co(await t.getStateTreeInfos()));const u=await mo.compress({payer:r.publicKey,toAddress:n,lamports:o,outputStateTreeInfo:s}),c=io([e.ComputeBudgetProgram.setComputeUnitLimit({units:1e6}),u],r,a,[]);return await no(t,c,i)},exports.confirmConfig={commitment:"confirmed",preflightCommitment:"confirmed"},exports.confirmTransaction=jr,exports.confirmTx=so,exports.convertInvokeCpiWithReadOnlyToInvoke=qr,exports.convertMerkleProofsWithContextToHex=as,exports.convertNonInclusionMerkleProofInputsToHex=us,exports.convertToPublicTransactionEvent=Nt,exports.cpiContext2Pubkey=Ce,exports.cpiContextPubkey=Ie,exports.createAccount=async function(t,r,o,n,s,i,a){const{blockhash:u}=await t.getLatestBlockhash(),c=null!=s?s:he(),{tree:l,queue:d}=c,h=c.treeType===exports.TreeType.AddressV2;if($.isV2()||h)throw new Error("You are using V2. create-account/create-address is only supported via CPI.");const p=Fr(o,n),m=Kr(p,l);i||(i=co(await t.getStateTreeInfos()));const f=await t.getValidityProofV0(void 0,[{address:nt(m.toBytes()),tree:l,queue:d}]),y={seed:p,addressMerkleTreeRootIndex:f.rootIndices[0],addressMerkleTreePubkey:f.treeInfos[0].tree,addressQueuePubkey:f.treeInfos[0].queue},g=await mo.createAccount({payer:r.publicKey,newAddressParams:y,newAddress:Array.from(m.toBytes()),recentValidityProof:f.compressedProof,programId:n,outputStateTreeInfo:i}),w=io([e.ComputeBudgetProgram.setComputeUnitLimit({units:1e6}),g],r,u,[]);return await no(t,w,a)},exports.createAccountWithLamports=async function(t,r,o,n,s,i,a,u){n=nt(n);const c=await t.getCompressedAccountsByOwner(r.publicKey),[l]=fo(c.items,n),{blockhash:d}=await t.getLatestBlockhash(),h=null!=i?i:he(),{tree:p}=h,m=h.treeType===exports.TreeType.AddressV2;if($.isV2()||m)throw new Error("You are using V2. create-account/create-address is only supported via CPI.");const f=Fr(o,s),y=Kr(f,p),g=await t.getValidityProof(l.map((e=>e.hash)),[nt(y.toBytes())]),w={seed:f,addressMerkleTreeRootIndex:g.rootIndices[g.rootIndices.length-1],addressMerkleTreePubkey:g.treeInfos[g.treeInfos.length-1].tree,addressQueuePubkey:g.treeInfos[g.treeInfos.length-1].queue},v=await mo.createAccount({payer:r.publicKey,newAddressParams:w,newAddress:Array.from(y.toBytes()),recentValidityProof:g.compressedProof,inputCompressedAccounts:l,inputStateRootIndices:g.rootIndices,outputStateTreeInfo:a}),x=io([e.ComputeBudgetProgram.setComputeUnitLimit({units:1e6}),v],r,d,[]);return await no(t,x,u)},exports.createBN254=rt,exports.createCompressedAccountLegacy=st,exports.createCompressedAccountMeta=(e,t,r,o)=>({treeInfo:e,outputStateTreeIndex:t,address:null!=r?r:null,lamports:null!=o?o:null}),exports.createCompressedAccountWithMerkleContextLegacy=it,exports.createMerkleContextLegacy=at,exports.createRpc=function(t,r,o,n){let s;if(t)if("string"==typeof t)s=t,r=r||s,o=o||s;else{if(!(t instanceof e.Connection))throw new Error("Invalid endpoint or connection type");s=t.rpcEndpoint,r=r||s,o=o||s}else s="http://127.0.0.1:8899",r=r||"http://127.0.0.1:8784",o=o||"http://127.0.0.1:3001";var i;return i=s.toLowerCase().includes("devnet"),ts=i,new hs(s,r,o,n)},exports.createRpcResult=cn,exports.createStateTreeLookupTable=async function({connection:t,payer:r,authority:o,recentSlot:n}){const[s,i]=e.AddressLookupTableProgram.createLookupTable({payer:r.publicKey,authority:o.publicKey,recentSlot:n}),a=io([s],r,(await t.getLatestBlockhash()).blockhash,zr(r,[o]));return{address:i,txId:await no(t,a)}},exports.decodeInstructionDataInvoke=Et,exports.decodeInstructionDataInvokeCpi=At,exports.decodeInstructionDataInvokeCpiWithReadOnly=It,exports.decodePublicTransactionEvent=St,exports.decompress=async function(t,r,o,n,s){const i=(await t.getCompressedAccountsByOwner(r.publicKey)).items;o=nt(o);const a=ho(i);if(o.gt(a))throw new Error(`Not enough compressed lamports. Expected ${o}, got ${a}`);const u=await t.getValidityProof(i.map((e=>nt(e.hash)))),{blockhash:c}=await t.getLatestBlockhash(),l=await mo.decompress({payer:r.publicKey,toAddress:n,inputCompressedAccounts:i,recentValidityProof:u.compressedProof,recentInputStateRootIndices:u.rootIndices,lamports:o}),d=io([e.ComputeBudgetProgram.setComputeUnitLimit({units:1e6}),l],r,c,[]);return await no(t,d,s)},exports.dedupeSigner=zr,exports.deepEqual=function e(t,r){if(typeof t!=typeof r)return console.log(`Type mismatch: ${typeof t} !== ${typeof r}`),0;if(t instanceof W&&r instanceof W)return t.eq(r);if("object"==typeof t&&null!==t&&null!==r){const o=Object.keys(t),n=Object.keys(r);if(o.length!==n.length)return console.log(`Key length mismatch: ${o.length} !== ${n.length}`),0;for(const s of o){if(!n.includes(s))return console.log(`Key ${s} not found in value`),0;if(!e(t[s],r[s]))return console.log(`Value mismatch at key ${s}`),0}return 1}return t!==r&&console.log(`Value mismatch: ${t} !== ${r}`),t===r},exports.defaultStateTreeLookupTables=ce,exports.defaultStaticAccounts=()=>[new e.PublicKey(ie()),new e.PublicKey(oe),new e.PublicKey(se),new e.PublicKey(ae())],exports.defaultStaticAccountsStruct=ue,exports.defaultTestStateTreeAccounts=me,exports.defaultTestStateTreeAccounts2=()=>({nullifierQueue2:new e.PublicKey(Se),merkleTree2:new e.PublicKey(Me)}),exports.deriveAddress=function(e,t,r){const o=$.isV2();if(void 0===r){if(o)throw new Error("deriveAddress: programId is required in V2 mode. Pass programId as the third argument. If you need V1 behavior, set LIGHT_PROTOCOL_VERSION=V1.");return Kr(e,t)}if(!o)throw new Error("deriveAddress: programId must not be passed in V1 mode. Omit programId from deriveAddress. If you need V2 behavior, set LIGHT_PROTOCOL_VERSION=V2.");return Wr(e,t,r)},exports.deriveAddressLegacy=Kr,exports.deriveAddressSeed=function(e,t){const r=$.isV2();if(void 0!==t){if(r)throw new Error("deriveAddressSeed: programId must not be passed in V2 mode. For V2, omit programId here and pass it to deriveAddress instead. If you need V1 behavior, set LIGHT_PROTOCOL_VERSION=V1.");return Fr(e,t)}if(!r)throw new Error("deriveAddressSeed: programId is required in V1 mode. Pass programId as the second argument. If you need V2 behavior, set LIGHT_PROTOCOL_VERSION=V2.");return Hr(e)},exports.deriveAddressSeedLegacy=Fr,exports.deriveAddressSeedV2=Hr,exports.deriveAddressV2=Wr,exports.deserializeAppendNullifyCreateAddressInputsIndexer=Lt,exports.encodeBN254toBase58=ot,exports.encodeInstructionDataInvoke=ht,exports.encodePublicTransactionEvent=function(e){const r=t.Buffer.alloc(1e3),o=Mt.encode(e,r);return r.slice(0,o)},exports.extendStateTreeLookupTable=async function({connection:t,tableAddress:r,newStateTreeAddresses:o,newQueueAddresses:n,newCpiContextAddresses:s,payer:i,authority:a}){const u=await t.getAddressLookupTable(r);if(!u.value)throw new Error("Lookup table not found");if(u.value.state.addresses.length%3!=0)throw new Error("Lookup table must have a multiple of 3 addresses");if(o.length!==n.length||o.length!==s.length)throw new Error("Same number of newStateTreeAddresses, newQueueAddresses, and newCpiContextAddresses required");const c=io([e.AddressLookupTableProgram.extendLookupTable({payer:i.publicKey,authority:a.publicKey,lookupTable:r,addresses:o.flatMap(((e,t)=>[e,n[t],s[t]]))})],i,(await t.getLatestBlockhash()).blockhash,zr(i,[a]));return{tableAddress:r,txId:await no(t,c)}},exports.featureFlags=$,exports.getAccountCompressionAuthority=ae,exports.getAllStateTreeInfos=lo,exports.getBatchAddressTreeInfo=pe,exports.getCompressedTokenAccountByHashTest=_o,exports.getCompressedTokenAccounts=So,exports.getCompressedTokenAccountsByDelegateTest=ko,exports.getCompressedTokenAccountsByOwnerTest=Co,exports.getConnection=function(){return new e.Connection("http://127.0.0.1:8899","confirmed")},exports.getDefaultAddressSpace=de,exports.getDefaultAddressTreeInfo=he,exports.getIndexOrAdd=Bt,exports.getLightSystemAccountMetas=function(e){return $.isV2()?Jr(e):Qr(e)},exports.getLightSystemAccountMetasLegacy=Qr,exports.getLightSystemAccountMetasV2=Jr,exports.getOutputQueue=function(e){var t,r;return null!==(r=null===(t=e.treeInfo.nextTreeInfo)||void 0===t?void 0:t.queue)&&void 0!==r?r:e.treeInfo.queue},exports.getOutputTreeInfo=function(e){var t;return null!==(t=e.treeInfo.nextTreeInfo)&&void 0!==t?t:e.treeInfo},exports.getParsedEvents=xo,exports.getPublicInputHash=function(e,t,r,o){const n=cs(e.map((e=>e.root)),t,o),s=r.map((e=>e.value)),i=cs(r.map((e=>e.root)),s,o);return i.isZero()?n.isZero()?cs([n],[i],o):n:i},exports.getRegisteredProgramPda=ie,exports.getStateTreeInfoByPubkey=ao,exports.getTestKeypair=vs,exports.getTestRpc=async function(e,t="http://127.0.0.1:8899",r="http://127.0.0.1:8784",o="http://127.0.0.1:3001",n,s=0){return new ps(t,e,r,o,void 0,{depth:n||me().merkleTreeHeight,log:s})},exports.getTreeInfoByPubkey=uo,exports.hashToBn254FieldSizeBe=Dr,exports.hashvToBn254FieldSizeBe=Ur,exports.hashvToBn254FieldSizeBeU8Array=Vr,exports.invokeAccountsLayout=Tt,exports.isDevnetCompat=function(){return ts},exports.isLocalTest=le,exports.isSmallerThanBn254FieldSizeBe=Br,exports.jsonRpcResult=dn,exports.jsonRpcResultAndContext=hn,exports.lightSystemProgram=ne,exports.localTestActiveStateTreeInfos=ze,exports.mergeSignatures=ds,exports.merkleTree2Pubkey=Me,exports.merkletreePubkey=Ee,exports.negateAndCompressProof=Yr,exports.newAccountWithLamports=async function(e,t=1e9,r){(void 0===r||r>255)&&(r=256);const o=vs(r),n=await e.requestAirdrop(o.publicKey,t);return await so(e,n),o},exports.noopProgram=oe,exports.nullifiedStateTreeLookupTableDevnet=xe,exports.nullifiedStateTreeLookupTableMainnet=we,exports.nullifierQueue2Pubkey=Se,exports.nullifierQueuePubkey=be,exports.nullifyLookupTable=async function({connection:t,fullStateTreeAddress:r,nullifyLookupTableAddress:o,stateTreeLookupTableAddress:n,payer:s,authority:i}){const a=await t.getAddressLookupTable(n);if(!a.value)throw console.log("stateTreeLookupTable",a),new Error("State tree lookup table not found");if(!a.value.state.addresses.map((e=>e.toBase58())).includes(r.toBase58()))throw console.log("fullStateTreeAddress",r),console.log("stateTreeLookupTable.value.state.addresses",a.value.state.addresses),new Error("State tree address not found in lookup table. Pass correct address or stateTreeLookupTable");const u=await t.getAddressLookupTable(o);if(!u.value)throw new Error("Nullify table not found");if(u.value.state.addresses.map((e=>e.toBase58())).includes(r.toBase58()))throw new Error("Address already exists in nullify lookup table");const c=io([e.AddressLookupTableProgram.extendLookupTable({payer:s.publicKey,authority:i.publicKey,lookupTable:o,addresses:[r]})],s,(await t.getLatestBlockhash()).blockhash,zr(s,[i]));return{txId:await no(t,c)}},exports.packCompressedAccounts=Vt,exports.packDecompressAccountsIdempotent=async function(e,t,r,o){const n=[],s=new Map,i=(e,t)=>{const r=e.toBase58();if(!s.has(r)){const o=n.length;return n.push({pubkey:e,isSigner:0,isWritable:t}),s.set(r,o),o}return s.get(r)},a=r.map((e=>{const t=i(e.treeInfo.tree,1),r=i(e.treeInfo.queue,1);return{[e.key]:e.data,merkleContext:{merkleTreePubkeyIndex:t,queuePubkeyIndex:r}}})),u=n.length;return o.forEach((e=>{i(e,1)})),{proofOption:{0:t.compressedProof},compressedAccounts:a,systemAccountsOffset:u,remainingAccounts:n}},exports.packNewAddressParams=$r,exports.packTreeInfos=function(e,t,r){const o=e.slice(),n=[],s=[];let i=-1;if(0===t.length&&0===r.length)return{stateTrees:void 0,addressTrees:s};if(t.forEach((e=>{const t=Bt(o,e.treeInfo.tree),r=Bt(o,e.treeInfo.queue);n.push({rootIndex:e.rootIndex,merkleTreePubkeyIndex:t,queuePubkeyIndex:r,leafIndex:e.leafIndex,proveByIndex:e.proveByIndex})})),n.length>0){const e=t[0].treeInfo.nextTreeInfo||t[0].treeInfo;let r=e.tree;if(e.treeType===exports.TreeType.StateV2){if(!$.isV2())throw new Error("V2 trees are not supported yet");r=e.queue}i=Bt(o,r)}return r.forEach((e=>{const t=Bt(o,e.treeInfo.tree),r=Bt(o,e.treeInfo.queue);s.push({rootIndex:e.rootIndex,addressMerkleTreePubkeyIndex:t,addressQueuePubkeyIndex:r})})),{stateTrees:n.length>0?{packedTreeInfos:n,outputTreeIndex:i}:void 0,addressTrees:s}},exports.padOutputStateMerkleTrees=Rt,exports.parseAccountData=rs,exports.parseEvents=bo,exports.parseLightTransaction=Eo,exports.parsePublicTransactionEventWithIdl=Io,exports.parseTokenLayoutWithIdl=Mo,exports.pickRandomTreeAndQueue=function(e){const t=e.length,r=Math.floor(Math.random()*t);let o;if(void 0!==r){if(r<0||r>=e.length)throw new Error(`Index ${r} out of bounds for infos array of length ${e.length}`);o=r}else o=Math.floor(Math.random()*e.length);return e[o]},exports.pipe=function(e,...t){return r=>t.reduce(((e,t)=>t(e)),e(r))},exports.placeholderValidityProof=()=>({a:Array.from({length:32},((e,t)=>t+1)),b:Array.from({length:64},((e,t)=>t+1)),c:Array.from({length:32},((e,t)=>t+1))}),exports.proofFromJsonStruct=Xr,exports.proverRequest=is,exports.pushUniqueItems=function(e,t){e.forEach((e=>{t.includes(e)||t.push(e)}))},exports.rpcRequest=ss,exports.selectMinCompressedSolAccountsForTransfer=fo,exports.selectStateTreeInfo=co,exports.sendAndConfirmTx=no,exports.sleep=function(e){return new Promise((t=>setTimeout(t,e)))},exports.stateTreeLookupTableDevnet=ve,exports.stateTreeLookupTableMainnet=ge,exports.sumUpLamports=ho,exports.toAccountMetas=Dt,exports.toArray=e=>Array.isArray(e)?e:[e],exports.toCamelCase=Rr,exports.toHex=Nr,exports.toUnixTimestamp=e=>new Date(e).getTime(),exports.transfer=async function(t,r,o,n,s,i){var a;let u=nt(0);const c=[];let l;for(o=nt(o);u.lt(o);){const e={filters:void 0,dataSlice:void 0,cursor:l,limit:nt(1e3)},r=await t.getCompressedAccountsByOwner(n.publicKey,e);for(const e of r.items)e.lamports.gt(nt(0))&&(c.push(e),u=u.add(e.lamports));if(l=null!==(a=r.cursor)&&void 0!==a?a:void 0,r.items.length<1e3||u.gte(o))break}if(u.lt(o))throw new Error(`Insufficient balance for transfer. Required: ${o.toString()}, available: ${u.toString()}`);const[d]=fo(c,o),h=await t.getValidityProof(d.map((e=>nt(e.hash)))),p=await mo.transfer({payer:r.publicKey,inputCompressedAccounts:d,toAddress:s,lamports:o,recentInputStateRootIndices:h.rootIndices,recentValidityProof:h.compressedProof}),{blockhash:m}=await t.getLatestBlockhash(),f=io([e.ComputeBudgetProgram.setComputeUnitLimit({units:35e4}),p],r,m);return await no(t,f,i)},exports.validateNumbers=Wt,exports.validateNumbersForInclusionProof=Kt,exports.validateNumbersForNonInclusionProof=Ht,exports.validateNumbersForProof=Ft,exports.validateSameOwner=qt,exports.validateSufficientBalance=Ut,exports.versionedEndpoint=Z,exports.wrapBigNumbersAsStrings=ns;
1
+ "use strict";var e=require("@solana/web3.js"),t=require("buffer"),r="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function o(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var n={},s={};class i{constructor(e,t){if(!Number.isInteger(e))throw new TypeError("span must be an integer");this.span=e,this.property=t}makeDestinationObject(){return{}}decode(e,t){throw new Error("Layout is abstract")}encode(e,t,r){throw new Error("Layout is abstract")}getSpan(e,t){if(0>this.span)throw new RangeError("indeterminate span");return this.span}replicate(e){const t=Object.create(this.constructor.prototype);return Object.assign(t,this),t.property=e,t}fromArray(e){}}function a(e,t){return t.property?e+"["+t.property+"]":e}s.Layout=i,s.nameWithProperty=a,s.bindConstructorLayout=function(e,t){if("function"!=typeof e)throw new TypeError("Class must be constructor");if(e.hasOwnProperty("layout_"))throw new Error("Class is already bound to a layout");if(!(t&&t instanceof i))throw new TypeError("layout must be a Layout");if(t.hasOwnProperty("boundConstructor_"))throw new Error("layout is already bound to a constructor");e.layout_=t,t.boundConstructor_=e,t.makeDestinationObject=()=>new e,Object.defineProperty(e.prototype,"encode",{value:function(e,r){return t.encode(this,e,r)},writable:1}),Object.defineProperty(e,"decode",{value:function(e,r){return t.decode(e,r)},writable:1})};class u extends i{isCount(){throw new Error("ExternalLayout is abstract")}}class c extends u{constructor(e,t){if(void 0===e&&(e=1),!Number.isInteger(e)||0>=e)throw new TypeError("elementSpan must be a (positive) integer");super(-1,t),this.elementSpan=e}isCount(){return 1}decode(e,t){void 0===t&&(t=0);const r=e.length-t;return Math.floor(r/this.elementSpan)}encode(e,t,r){return 0}}class l extends u{constructor(e,t,r){if(!(e instanceof i))throw new TypeError("layout must be a Layout");if(void 0===t)t=0;else if(!Number.isInteger(t))throw new TypeError("offset must be integer or undefined");super(e.span,r||e.property),this.layout=e,this.offset=t}isCount(){return this.layout instanceof d||this.layout instanceof h}decode(e,t){return void 0===t&&(t=0),this.layout.decode(e,t+this.offset)}encode(e,t,r){return void 0===r&&(r=0),this.layout.encode(e,t,r+this.offset)}}class d extends i{constructor(e,t){if(super(e,t),6<this.span)throw new RangeError("span must not exceed 6 bytes")}decode(e,t){return void 0===t&&(t=0),e.readUIntLE(t,this.span)}encode(e,t,r){return void 0===r&&(r=0),t.writeUIntLE(e,r,this.span),this.span}}class h extends i{constructor(e,t){if(super(e,t),6<this.span)throw new RangeError("span must not exceed 6 bytes")}decode(e,t){return void 0===t&&(t=0),e.readUIntBE(t,this.span)}encode(e,t,r){return void 0===r&&(r=0),t.writeUIntBE(e,r,this.span),this.span}}class p extends i{constructor(e,t){if(super(e,t),6<this.span)throw new RangeError("span must not exceed 6 bytes")}decode(e,t){return void 0===t&&(t=0),e.readIntLE(t,this.span)}encode(e,t,r){return void 0===r&&(r=0),t.writeIntLE(e,r,this.span),this.span}}class m extends i{constructor(e,t){if(super(e,t),6<this.span)throw new RangeError("span must not exceed 6 bytes")}decode(e,t){return void 0===t&&(t=0),e.readIntBE(t,this.span)}encode(e,t,r){return void 0===r&&(r=0),t.writeIntBE(e,r,this.span),this.span}}const f=Math.pow(2,32);function y(e){const t=Math.floor(e/f);return{hi32:t,lo32:e-t*f}}function g(e,t){return e*f+t}class w extends i{constructor(e){super(8,e)}decode(e,t){void 0===t&&(t=0);const r=e.readUInt32LE(t);return g(e.readUInt32LE(t+4),r)}encode(e,t,r){void 0===r&&(r=0);const o=y(e);return t.writeUInt32LE(o.lo32,r),t.writeUInt32LE(o.hi32,r+4),8}}class v extends i{constructor(e){super(8,e)}decode(e,t){return void 0===t&&(t=0),g(e.readUInt32BE(t),e.readUInt32BE(t+4))}encode(e,t,r){void 0===r&&(r=0);const o=y(e);return t.writeUInt32BE(o.hi32,r),t.writeUInt32BE(o.lo32,r+4),8}}class x extends i{constructor(e){super(8,e)}decode(e,t){void 0===t&&(t=0);const r=e.readUInt32LE(t);return g(e.readInt32LE(t+4),r)}encode(e,t,r){void 0===r&&(r=0);const o=y(e);return t.writeUInt32LE(o.lo32,r),t.writeInt32LE(o.hi32,r+4),8}}class b extends i{constructor(e){super(8,e)}decode(e,t){return void 0===t&&(t=0),g(e.readInt32BE(t),e.readUInt32BE(t+4))}encode(e,t,r){void 0===r&&(r=0);const o=y(e);return t.writeInt32BE(o.hi32,r),t.writeUInt32BE(o.lo32,r+4),8}}class I extends i{constructor(e){super(4,e)}decode(e,t){return void 0===t&&(t=0),e.readFloatLE(t)}encode(e,t,r){return void 0===r&&(r=0),t.writeFloatLE(e,r),4}}class E extends i{constructor(e){super(4,e)}decode(e,t){return void 0===t&&(t=0),e.readFloatBE(t)}encode(e,t,r){return void 0===r&&(r=0),t.writeFloatBE(e,r),4}}class A extends i{constructor(e){super(8,e)}decode(e,t){return void 0===t&&(t=0),e.readDoubleLE(t)}encode(e,t,r){return void 0===r&&(r=0),t.writeDoubleLE(e,r),8}}class T extends i{constructor(e){super(8,e)}decode(e,t){return void 0===t&&(t=0),e.readDoubleBE(t)}encode(e,t,r){return void 0===r&&(r=0),t.writeDoubleBE(e,r),8}}class M extends i{constructor(e,t,r){if(!(e instanceof i))throw new TypeError("elementLayout must be a Layout");if(!(t instanceof u&&t.isCount()||Number.isInteger(t)&&0<=t))throw new TypeError("count must be non-negative integer or an unsigned integer ExternalLayout");let o=-1;!(t instanceof u)&&0<e.span&&(o=t*e.span),super(o,r),this.elementLayout=e,this.count=t}getSpan(e,t){if(0<=this.span)return this.span;void 0===t&&(t=0);let r=0,o=this.count;if(o instanceof u&&(o=o.decode(e,t)),0<this.elementLayout.span)r=o*this.elementLayout.span;else{let n=0;for(;n<o;)r+=this.elementLayout.getSpan(e,t+r),++n}return r}decode(e,t){void 0===t&&(t=0);const r=[];let o=0,n=this.count;for(n instanceof u&&(n=n.decode(e,t));o<n;)r.push(this.elementLayout.decode(e,t)),t+=this.elementLayout.getSpan(e,t),o+=1;return r}encode(e,t,r){void 0===r&&(r=0);const o=this.elementLayout,n=e.reduce(((e,n)=>e+o.encode(n,t,r+e)),0);return this.count instanceof u&&this.count.encode(e.length,t,r),n}}class S extends i{constructor(e,t,r){if(!Array.isArray(e)||!e.reduce(((e,t)=>e&&t instanceof i),1))throw new TypeError("fields must be array of Layout instances");"boolean"==typeof t&&void 0===r&&(r=t,t=void 0);for(const t of e)if(0>t.span&&void 0===t.property)throw new Error("fields cannot contain unnamed variable-length layout");let o=-1;try{o=e.reduce(((e,t)=>e+t.getSpan()),0)}catch(e){}super(o,t),this.fields=e,this.decodePrefixes=!!r}getSpan(e,t){if(0<=this.span)return this.span;void 0===t&&(t=0);let r=0;try{r=this.fields.reduce(((r,o)=>{const n=o.getSpan(e,t);return t+=n,r+n}),0)}catch(e){throw new RangeError("indeterminate span")}return r}decode(e,t){void 0===t&&(t=0);const r=this.makeDestinationObject();for(const o of this.fields)if(void 0!==o.property&&(r[o.property]=o.decode(e,t)),t+=o.getSpan(e,t),this.decodePrefixes&&e.length===t)break;return r}encode(e,t,r){void 0===r&&(r=0);const o=r;let n=0,s=0;for(const o of this.fields){let i=o.span;if(s=0<i?i:0,void 0!==o.property){const n=e[o.property];void 0!==n&&(s=o.encode(n,t,r),0>i&&(i=o.getSpan(t,r)))}n=r,r+=i}return n+s-o}fromArray(e){const t=this.makeDestinationObject();for(const r of this.fields)void 0!==r.property&&0<e.length&&(t[r.property]=e.shift());return t}layoutFor(e){if("string"!=typeof e)throw new TypeError("property must be string");for(const t of this.fields)if(t.property===e)return t}offsetOf(e){if("string"!=typeof e)throw new TypeError("property must be string");let t=0;for(const r of this.fields){if(r.property===e)return t;0>r.span?t=-1:0<=t&&(t+=r.span)}}}class C{constructor(e){this.property=e}decode(){throw new Error("UnionDiscriminator is abstract")}encode(){throw new Error("UnionDiscriminator is abstract")}}class k extends C{constructor(e,t){if(!(e instanceof u&&e.isCount()))throw new TypeError("layout must be an unsigned integer ExternalLayout");super(t||e.property||"variant"),this.layout=e}decode(e,t){return this.layout.decode(e,t)}encode(e,t,r){return this.layout.encode(e,t,r)}}class _ extends i{constructor(e,t,r){const o=e instanceof d||e instanceof h;if(o)e=new k(new l(e));else if(e instanceof u&&e.isCount())e=new k(e);else if(!(e instanceof C))throw new TypeError("discr must be a UnionDiscriminator or an unsigned integer layout");if(void 0===t&&(t=null),!(null===t||t instanceof i))throw new TypeError("defaultLayout must be null or a Layout");if(null!==t){if(0>t.span)throw new Error("defaultLayout must have constant span");void 0===t.property&&(t=t.replicate("content"))}let n=-1;t&&(n=t.span,0<=n&&o&&(n+=e.layout.span)),super(n,r),this.discriminator=e,this.usesPrefixDiscriminator=o,this.defaultLayout=t,this.registry={};let s=this.defaultGetSourceVariant.bind(this);this.getSourceVariant=function(e){return s(e)},this.configGetSourceVariant=function(e){s=e.bind(this)}}getSpan(e,t){if(0<=this.span)return this.span;void 0===t&&(t=0);const r=this.getVariant(e,t);if(!r)throw new Error("unable to determine span for unrecognized variant");return r.getSpan(e,t)}defaultGetSourceVariant(e){if(e.hasOwnProperty(this.discriminator.property)){if(this.defaultLayout&&e.hasOwnProperty(this.defaultLayout.property))return;const t=this.registry[e[this.discriminator.property]];if(t&&(!t.layout||e.hasOwnProperty(t.property)))return t}else for(const t in this.registry){const r=this.registry[t];if(e.hasOwnProperty(r.property))return r}throw new Error("unable to infer src variant")}decode(e,t){let r;void 0===t&&(t=0);const o=this.discriminator,n=o.decode(e,t);let s=this.registry[n];if(void 0===s){let i=0;s=this.defaultLayout,this.usesPrefixDiscriminator&&(i=o.layout.span),r=this.makeDestinationObject(),r[o.property]=n,r[s.property]=this.defaultLayout.decode(e,t+i)}else r=s.decode(e,t);return r}encode(e,t,r){void 0===r&&(r=0);const o=this.getSourceVariant(e);if(void 0===o){const o=this.discriminator,n=this.defaultLayout;let s=0;return this.usesPrefixDiscriminator&&(s=o.layout.span),o.encode(e[o.property],t,r),s+n.encode(e[n.property],t,r+s)}return o.encode(e,t,r)}addVariant(e,t,r){const o=new P(this,e,t,r);return this.registry[e]=o,o}getVariant(e,t){let r=e;return Buffer.isBuffer(e)&&(void 0===t&&(t=0),r=this.discriminator.decode(e,t)),this.registry[r]}}class P extends i{constructor(e,t,r,o){if(!(e instanceof _))throw new TypeError("union must be a Union");if(!Number.isInteger(t)||0>t)throw new TypeError("variant must be a (non-negative) integer");if("string"==typeof r&&void 0===o&&(o=r,r=null),r){if(!(r instanceof i))throw new TypeError("layout must be a Layout");if(null!==e.defaultLayout&&0<=r.span&&r.span>e.defaultLayout.span)throw new Error("variant span exceeds span of containing union");if("string"!=typeof o)throw new TypeError("variant must have a String property")}let n=e.span;0>e.span&&(n=r?r.span:0,0<=n&&e.usesPrefixDiscriminator&&(n+=e.discriminator.layout.span)),super(n,o),this.union=e,this.variant=t,this.layout=r||null}getSpan(e,t){if(0<=this.span)return this.span;void 0===t&&(t=0);let r=0;return this.union.usesPrefixDiscriminator&&(r=this.union.discriminator.layout.span),r+this.layout.getSpan(e,t+r)}decode(e,t){const r=this.makeDestinationObject();if(void 0===t&&(t=0),this!==this.union.getVariant(e,t))throw new Error("variant mismatch");let o=0;return this.union.usesPrefixDiscriminator&&(o=this.union.discriminator.layout.span),this.layout?r[this.property]=this.layout.decode(e,t+o):this.property?r[this.property]=1:this.union.usesPrefixDiscriminator&&(r[this.union.discriminator.property]=this.variant),r}encode(e,t,r){void 0===r&&(r=0);let o=0;if(this.union.usesPrefixDiscriminator&&(o=this.union.discriminator.layout.span),this.layout&&!e.hasOwnProperty(this.property))throw new TypeError("variant lacks property "+this.property);this.union.discriminator.encode(this.variant,t,r);let n=o;if(this.layout&&(this.layout.encode(e[this.property],t,r+o),n+=this.layout.getSpan(t,r+o),0<=this.union.span&&n>this.union.span))throw new Error("encoded variant overruns containing union");return n}fromArray(e){if(this.layout)return this.layout.fromArray(e)}}function O(e){return 0>e&&(e+=4294967296),e}class L extends i{constructor(e,t,r){if(!(e instanceof d||e instanceof h))throw new TypeError("word must be a UInt or UIntBE layout");if("string"==typeof t&&void 0===r&&(r=t,t=void 0),4<e.span)throw new RangeError("word cannot exceed 32 bits");super(e.span,r),this.word=e,this.msb=!!t,this.fields=[];let o=0;this._packedSetValue=function(e){return o=O(e),this},this._packedGetValue=function(){return o}}decode(e,t){const r=this.makeDestinationObject();void 0===t&&(t=0);const o=this.word.decode(e,t);this._packedSetValue(o);for(const e of this.fields)void 0!==e.property&&(r[e.property]=e.decode(o));return r}encode(e,t,r){void 0===r&&(r=0);const o=this.word.decode(t,r);this._packedSetValue(o);for(const t of this.fields)if(void 0!==t.property){const r=e[t.property];void 0!==r&&t.encode(r)}return this.word.encode(this._packedGetValue(),t,r)}addField(e,t){const r=new B(this,e,t);return this.fields.push(r),r}addBoolean(e){const t=new N(this,e);return this.fields.push(t),t}fieldFor(e){if("string"!=typeof e)throw new TypeError("property must be string");for(const t of this.fields)if(t.property===e)return t}}class B{constructor(e,t,r){if(!(e instanceof L))throw new TypeError("container must be a BitStructure");if(!Number.isInteger(t)||0>=t)throw new TypeError("bits must be positive integer");const o=8*e.span,n=e.fields.reduce(((e,t)=>e+t.bits),0);if(t+n>o)throw new Error("bits too long for span remainder ("+(o-n)+" of "+o+" remain)");this.container=e,this.bits=t,this.valueMask=(1<<t)-1,32===t&&(this.valueMask=4294967295),this.start=n,this.container.msb&&(this.start=o-n-t),this.wordMask=O(this.valueMask<<this.start),this.property=r}decode(){return O(this.container._packedGetValue()&this.wordMask)>>>this.start}encode(e){if(!Number.isInteger(e)||e!==O(e&this.valueMask))throw new TypeError(a("BitField.encode",this)+" value must be integer not exceeding "+this.valueMask);const t=this.container._packedGetValue(),r=O(e<<this.start);this.container._packedSetValue(O(t&~this.wordMask)|r)}}let N=class extends B{constructor(e,t){super(e,1,t)}decode(e,t){return!!B.prototype.decode.call(this,e,t)}encode(e){return"boolean"==typeof e&&(e=+e),B.prototype.encode.call(this,e)}};class R extends i{constructor(e,t){if(!(e instanceof u&&e.isCount()||Number.isInteger(e)&&0<=e))throw new TypeError("length must be positive integer or an unsigned integer ExternalLayout");let r=-1;e instanceof u||(r=e),super(r,t),this.length=e}getSpan(e,t){let r=this.span;return 0>r&&(r=this.length.decode(e,t)),r}decode(e,t){void 0===t&&(t=0);let r=this.span;return 0>r&&(r=this.length.decode(e,t)),e.slice(t,t+r)}encode(e,t,r){let o=this.length;if(this.length instanceof u&&(o=e.length),!Buffer.isBuffer(e)||o!==e.length)throw new TypeError(a("Blob.encode",this)+" requires (length "+o+") Buffer as src");if(r+o>t.length)throw new RangeError("encoding overruns Buffer");return t.write(e.toString("hex"),r,o,"hex"),this.length instanceof u&&this.length.encode(o,t,r),o}}class D extends i{constructor(e){super(-1,e)}getSpan(e,t){if(!Buffer.isBuffer(e))throw new TypeError("b must be a Buffer");void 0===t&&(t=0);let r=t;for(;r<e.length&&0!==e[r];)r+=1;return 1+r-t}decode(e,t,r){void 0===t&&(t=0);let o=this.getSpan(e,t);return e.slice(t,t+o-1).toString("utf-8")}encode(e,t,r){void 0===r&&(r=0),"string"!=typeof e&&(e=e.toString());const o=new Buffer(e,"utf8"),n=o.length;if(r+n>t.length)throw new RangeError("encoding overruns Buffer");return o.copy(t,r),t[r+n]=0,n+1}}class V extends i{constructor(e,t){if("string"==typeof e&&void 0===t&&(t=e,e=void 0),void 0===e)e=-1;else if(!Number.isInteger(e))throw new TypeError("maxSpan must be an integer");super(-1,t),this.maxSpan=e}getSpan(e,t){if(!Buffer.isBuffer(e))throw new TypeError("b must be a Buffer");return void 0===t&&(t=0),e.length-t}decode(e,t,r){void 0===t&&(t=0);let o=this.getSpan(e,t);if(0<=this.maxSpan&&this.maxSpan<o)throw new RangeError("text length exceeds maxSpan");return e.slice(t,t+o).toString("utf-8")}encode(e,t,r){void 0===r&&(r=0),"string"!=typeof e&&(e=e.toString());const o=new Buffer(e,"utf8"),n=o.length;if(0<=this.maxSpan&&this.maxSpan<n)throw new RangeError("text length exceeds maxSpan");if(r+n>t.length)throw new RangeError("encoding overruns Buffer");return o.copy(t,r),n}}class U extends i{constructor(e,t){super(0,t),this.value=e}decode(e,t,r){return this.value}encode(e,t,r){return 0}}s.ExternalLayout=u,s.GreedyCount=c,s.OffsetLayout=l,s.UInt=d,s.UIntBE=h,s.Int=p,s.IntBE=m,s.Float=I,s.FloatBE=E,s.Double=A,s.DoubleBE=T,s.Sequence=M,s.Structure=S,s.UnionDiscriminator=C,s.UnionLayoutDiscriminator=k,s.Union=_,s.VariantLayout=P,s.BitStructure=L,s.BitField=B,s.Boolean=N,s.Blob=R,s.CString=D,s.UTF8=V,s.Constant=U,s.greedy=(e,t)=>new c(e,t),s.offset=(e,t,r)=>new l(e,t,r),s.u8=e=>new d(1,e),s.u16=e=>new d(2,e),s.u24=e=>new d(3,e),s.u32=e=>new d(4,e),s.u40=e=>new d(5,e),s.u48=e=>new d(6,e),s.nu64=e=>new w(e),s.u16be=e=>new h(2,e),s.u24be=e=>new h(3,e),s.u32be=e=>new h(4,e),s.u40be=e=>new h(5,e),s.u48be=e=>new h(6,e),s.nu64be=e=>new v(e),s.s8=e=>new p(1,e),s.s16=e=>new p(2,e),s.s24=e=>new p(3,e),s.s32=e=>new p(4,e),s.s40=e=>new p(5,e),s.s48=e=>new p(6,e),s.ns64=e=>new x(e),s.s16be=e=>new m(2,e),s.s24be=e=>new m(3,e),s.s32be=e=>new m(4,e),s.s40be=e=>new m(5,e),s.s48be=e=>new m(6,e),s.ns64be=e=>new b(e),s.f32=e=>new I(e),s.f32be=e=>new E(e),s.f64=e=>new A(e),s.f64be=e=>new T(e),s.struct=(e,t,r)=>new S(e,t,r),s.bits=(e,t,r)=>new L(e,t,r),s.seq=(e,t,r)=>new M(e,t,r),s.union=(e,t,r)=>new _(e,t,r),s.unionLayoutDiscriminator=(e,t)=>new k(e,t),s.blob=(e,t)=>new R(e,t),s.cstr=e=>new D(e),s.utf8=(e,t)=>new V(e,t),s.const=(e,t)=>new U(e,t);var q={exports:{}};!function(e,t){function r(e,t){if(!e)throw new Error(t||"Assertion failed")}function o(e,t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}function n(e,t,r){if(n.isBN(e))return e;this.negative=0,this.words=null,this.length=0,this.red=null,null!==e&&("le"!==t&&"be"!==t||(r=t,t=10),this._init(e||0,t||10,r||"be"))}var s;"object"==typeof q?q.exports=n:t.BN=n,n.BN=n,n.wordSize=26;try{s="undefined"!=typeof window&&void 0!==window.Buffer?window.Buffer:require("buffer").Buffer}catch(e){}function i(e,t){var o=e.charCodeAt(t);return o>=48&&o<=57?o-48:o>=65&&o<=70?o-55:o>=97&&o<=102?o-87:void r(0,"Invalid character in "+e)}function a(e,t,r){var o=i(e,r);return r-1>=t&&(o|=i(e,r-1)<<4),o}function u(e,t,o,n){for(var s=0,i=0,a=Math.min(e.length,o),u=t;u<a;u++){var c=e.charCodeAt(u)-48;s*=n,i=c>=49?c-49+10:c>=17?c-17+10:c,r(c>=0&&i<n,"Invalid character"),s+=i}return s}function c(e,t){e.words=t.words,e.length=t.length,e.negative=t.negative,e.red=t.red}if(n.isBN=function(e){return e instanceof n?1:null!==e&&"object"==typeof e&&e.constructor.wordSize===n.wordSize&&Array.isArray(e.words)},n.max=function(e,t){return e.cmp(t)>0?e:t},n.min=function(e,t){return e.cmp(t)<0?e:t},n.prototype._init=function(e,t,o){if("number"==typeof e)return this._initNumber(e,t,o);if("object"==typeof e)return this._initArray(e,t,o);"hex"===t&&(t=16),r(t===(0|t)&&t>=2&&t<=36);var n=0;"-"===(e=e.toString().replace(/\s+/g,""))[0]&&(n++,this.negative=1),n<e.length&&(16===t?this._parseHex(e,n,o):(this._parseBase(e,t,n),"le"===o&&this._initArray(this.toArray(),t,o)))},n.prototype._initNumber=function(e,t,o){e<0&&(this.negative=1,e=-e),e<67108864?(this.words=[67108863&e],this.length=1):e<4503599627370496?(this.words=[67108863&e,e/67108864&67108863],this.length=2):(r(e<9007199254740992),this.words=[67108863&e,e/67108864&67108863,1],this.length=3),"le"===o&&this._initArray(this.toArray(),t,o)},n.prototype._initArray=function(e,t,o){if(r("number"==typeof e.length),e.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(e.length/3),this.words=new Array(this.length);for(var n=0;n<this.length;n++)this.words[n]=0;var s,i,a=0;if("be"===o)for(n=e.length-1,s=0;n>=0;n-=3)i=e[n]|e[n-1]<<8|e[n-2]<<16,this.words[s]|=i<<a&67108863,this.words[s+1]=i>>>26-a&67108863,(a+=24)>=26&&(a-=26,s++);else if("le"===o)for(n=0,s=0;n<e.length;n+=3)i=e[n]|e[n+1]<<8|e[n+2]<<16,this.words[s]|=i<<a&67108863,this.words[s+1]=i>>>26-a&67108863,(a+=24)>=26&&(a-=26,s++);return this._strip()},n.prototype._parseHex=function(e,t,r){this.length=Math.ceil((e.length-t)/6),this.words=new Array(this.length);for(var o=0;o<this.length;o++)this.words[o]=0;var n,s=0,i=0;if("be"===r)for(o=e.length-1;o>=t;o-=2)n=a(e,t,o)<<s,this.words[i]|=67108863&n,s>=18?(s-=18,i+=1,this.words[i]|=n>>>26):s+=8;else for(o=(e.length-t)%2==0?t+1:t;o<e.length;o+=2)n=a(e,t,o)<<s,this.words[i]|=67108863&n,s>=18?(s-=18,i+=1,this.words[i]|=n>>>26):s+=8;this._strip()},n.prototype._parseBase=function(e,t,r){this.words=[0],this.length=1;for(var o=0,n=1;n<=67108863;n*=t)o++;o--,n=n/t|0;for(var s=e.length-r,i=s%o,a=Math.min(s,s-i)+r,c=0,l=r;l<a;l+=o)c=u(e,l,l+o,t),this.imuln(n),this.words[0]+c<67108864?this.words[0]+=c:this._iaddn(c);if(0!==i){var d=1;for(c=u(e,l,e.length,t),l=0;l<i;l++)d*=t;this.imuln(d),this.words[0]+c<67108864?this.words[0]+=c:this._iaddn(c)}this._strip()},n.prototype.copy=function(e){e.words=new Array(this.length);for(var t=0;t<this.length;t++)e.words[t]=this.words[t];e.length=this.length,e.negative=this.negative,e.red=this.red},n.prototype._move=function(e){c(e,this)},n.prototype.clone=function(){var e=new n(null);return this.copy(e),e},n.prototype._expand=function(e){for(;this.length<e;)this.words[this.length++]=0;return this},n.prototype._strip=function(){for(;this.length>1&&0===this.words[this.length-1];)this.length--;return this._normSign()},n.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},"undefined"!=typeof Symbol&&"function"==typeof Symbol.for)try{n.prototype[Symbol.for("nodejs.util.inspect.custom")]=l}catch(e){n.prototype.inspect=l}else n.prototype.inspect=l;function l(){return(this.red?"<BN-R: ":"<BN: ")+this.toString(16)+">"}var d=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],h=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],p=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function m(e,t,r){r.negative=t.negative^e.negative;var o=e.length+t.length|0;r.length=o,o=o-1|0;var n=0|e.words[0],s=0|t.words[0],i=n*s,a=67108863&i,u=i/67108864|0;r.words[0]=a;for(var c=1;c<o;c++){for(var l=u>>>26,d=67108863&u,h=Math.min(c,t.length-1),p=Math.max(0,c-e.length+1);p<=h;p++){var m=c-p|0;l+=(i=(n=0|e.words[m])*(s=0|t.words[p])+d)/67108864|0,d=67108863&i}r.words[c]=0|d,u=0|l}return 0!==u?r.words[c]=0|u:r.length--,r._strip()}n.prototype.toString=function(e,t){var o;if(t=0|t||1,16===(e=e||10)||"hex"===e){o="";for(var n=0,s=0,i=0;i<this.length;i++){var a=this.words[i],u=(16777215&(a<<n|s)).toString(16);s=a>>>24-n&16777215,(n+=2)>=26&&(n-=26,i--),o=0!==s||i!==this.length-1?d[6-u.length]+u+o:u+o}for(0!==s&&(o=s.toString(16)+o);o.length%t!=0;)o="0"+o;return 0!==this.negative&&(o="-"+o),o}if(e===(0|e)&&e>=2&&e<=36){var c=h[e],l=p[e];o="";var m=this.clone();for(m.negative=0;!m.isZero();){var f=m.modrn(l).toString(e);o=(m=m.idivn(l)).isZero()?f+o:d[c-f.length]+f+o}for(this.isZero()&&(o="0"+o);o.length%t!=0;)o="0"+o;return 0!==this.negative&&(o="-"+o),o}r(0,"Base should be between 2 and 36")},n.prototype.toNumber=function(){var e=this.words[0];return 2===this.length?e+=67108864*this.words[1]:3===this.length&&1===this.words[2]?e+=4503599627370496+67108864*this.words[1]:this.length>2&&r(0,"Number can only safely store up to 53 bits"),0!==this.negative?-e:e},n.prototype.toJSON=function(){return this.toString(16,2)},s&&(n.prototype.toBuffer=function(e,t){return this.toArrayLike(s,e,t)}),n.prototype.toArray=function(e,t){return this.toArrayLike(Array,e,t)},n.prototype.toArrayLike=function(e,t,o){this._strip();var n=this.byteLength(),s=o||Math.max(1,n);r(n<=s,"byte array longer than desired length"),r(s>0,"Requested array length <= 0");var i=function(e,t){return e.allocUnsafe?e.allocUnsafe(t):new e(t)}(e,s);return this["_toArrayLike"+("le"===t?"LE":"BE")](i,n),i},n.prototype._toArrayLikeLE=function(e){for(var t=0,r=0,o=0,n=0;o<this.length;o++){var s=this.words[o]<<n|r;e[t++]=255&s,t<e.length&&(e[t++]=s>>8&255),t<e.length&&(e[t++]=s>>16&255),6===n?(t<e.length&&(e[t++]=s>>24&255),r=0,n=0):(r=s>>>24,n+=2)}if(t<e.length)for(e[t++]=r;t<e.length;)e[t++]=0},n.prototype._toArrayLikeBE=function(e){for(var t=e.length-1,r=0,o=0,n=0;o<this.length;o++){var s=this.words[o]<<n|r;e[t--]=255&s,t>=0&&(e[t--]=s>>8&255),t>=0&&(e[t--]=s>>16&255),6===n?(t>=0&&(e[t--]=s>>24&255),r=0,n=0):(r=s>>>24,n+=2)}if(t>=0)for(e[t--]=r;t>=0;)e[t--]=0},Math.clz32?n.prototype._countBits=function(e){return 32-Math.clz32(e)}:n.prototype._countBits=function(e){var t=e,r=0;return t>=4096&&(r+=13,t>>>=13),t>=64&&(r+=7,t>>>=7),t>=8&&(r+=4,t>>>=4),t>=2&&(r+=2,t>>>=2),r+t},n.prototype._zeroBits=function(e){if(0===e)return 26;var t=e,r=0;return 0==(8191&t)&&(r+=13,t>>>=13),0==(127&t)&&(r+=7,t>>>=7),0==(15&t)&&(r+=4,t>>>=4),0==(3&t)&&(r+=2,t>>>=2),0==(1&t)&&r++,r},n.prototype.bitLength=function(){var e=this.words[this.length-1],t=this._countBits(e);return 26*(this.length-1)+t},n.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,t=0;t<this.length;t++){var r=this._zeroBits(this.words[t]);if(e+=r,26!==r)break}return e},n.prototype.byteLength=function(){return Math.ceil(this.bitLength()/8)},n.prototype.toTwos=function(e){return 0!==this.negative?this.abs().inotn(e).iaddn(1):this.clone()},n.prototype.fromTwos=function(e){return this.testn(e-1)?this.notn(e).iaddn(1).ineg():this.clone()},n.prototype.isNeg=function(){return 0!==this.negative},n.prototype.neg=function(){return this.clone().ineg()},n.prototype.ineg=function(){return this.isZero()||(this.negative^=1),this},n.prototype.iuor=function(e){for(;this.length<e.length;)this.words[this.length++]=0;for(var t=0;t<e.length;t++)this.words[t]=this.words[t]|e.words[t];return this._strip()},n.prototype.ior=function(e){return r(0==(this.negative|e.negative)),this.iuor(e)},n.prototype.or=function(e){return this.length>e.length?this.clone().ior(e):e.clone().ior(this)},n.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},n.prototype.iuand=function(e){var t;t=this.length>e.length?e:this;for(var r=0;r<t.length;r++)this.words[r]=this.words[r]&e.words[r];return this.length=t.length,this._strip()},n.prototype.iand=function(e){return r(0==(this.negative|e.negative)),this.iuand(e)},n.prototype.and=function(e){return this.length>e.length?this.clone().iand(e):e.clone().iand(this)},n.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},n.prototype.iuxor=function(e){var t,r;this.length>e.length?(t=this,r=e):(t=e,r=this);for(var o=0;o<r.length;o++)this.words[o]=t.words[o]^r.words[o];if(this!==t)for(;o<t.length;o++)this.words[o]=t.words[o];return this.length=t.length,this._strip()},n.prototype.ixor=function(e){return r(0==(this.negative|e.negative)),this.iuxor(e)},n.prototype.xor=function(e){return this.length>e.length?this.clone().ixor(e):e.clone().ixor(this)},n.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},n.prototype.inotn=function(e){r("number"==typeof e&&e>=0);var t=0|Math.ceil(e/26),o=e%26;this._expand(t),o>0&&t--;for(var n=0;n<t;n++)this.words[n]=67108863&~this.words[n];return o>0&&(this.words[n]=~this.words[n]&67108863>>26-o),this._strip()},n.prototype.notn=function(e){return this.clone().inotn(e)},n.prototype.setn=function(e,t){r("number"==typeof e&&e>=0);var o=e/26|0,n=e%26;return this._expand(o+1),this.words[o]=t?this.words[o]|1<<n:this.words[o]&~(1<<n),this._strip()},n.prototype.iadd=function(e){var t,r,o;if(0!==this.negative&&0===e.negative)return this.negative=0,t=this.isub(e),this.negative^=1,this._normSign();if(0===this.negative&&0!==e.negative)return e.negative=0,t=this.isub(e),e.negative=1,t._normSign();this.length>e.length?(r=this,o=e):(r=e,o=this);for(var n=0,s=0;s<o.length;s++)t=(0|r.words[s])+(0|o.words[s])+n,this.words[s]=67108863&t,n=t>>>26;for(;0!==n&&s<r.length;s++)t=(0|r.words[s])+n,this.words[s]=67108863&t,n=t>>>26;if(this.length=r.length,0!==n)this.words[this.length]=n,this.length++;else if(r!==this)for(;s<r.length;s++)this.words[s]=r.words[s];return this},n.prototype.add=function(e){var t;return 0!==e.negative&&0===this.negative?(e.negative=0,t=this.sub(e),e.negative^=1,t):0===e.negative&&0!==this.negative?(this.negative=0,t=e.sub(this),this.negative=1,t):this.length>e.length?this.clone().iadd(e):e.clone().iadd(this)},n.prototype.isub=function(e){if(0!==e.negative){e.negative=0;var t=this.iadd(e);return e.negative=1,t._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var r,o,n=this.cmp(e);if(0===n)return this.negative=0,this.length=1,this.words[0]=0,this;n>0?(r=this,o=e):(r=e,o=this);for(var s=0,i=0;i<o.length;i++)s=(t=(0|r.words[i])-(0|o.words[i])+s)>>26,this.words[i]=67108863&t;for(;0!==s&&i<r.length;i++)s=(t=(0|r.words[i])+s)>>26,this.words[i]=67108863&t;if(0===s&&i<r.length&&r!==this)for(;i<r.length;i++)this.words[i]=r.words[i];return this.length=Math.max(this.length,i),r!==this&&(this.negative=1),this._strip()},n.prototype.sub=function(e){return this.clone().isub(e)};var f=function(e,t,r){var o,n,s,i=e.words,a=t.words,u=r.words,c=0,l=0|i[0],d=8191&l,h=l>>>13,p=0|i[1],m=8191&p,f=p>>>13,y=0|i[2],g=8191&y,w=y>>>13,v=0|i[3],x=8191&v,b=v>>>13,I=0|i[4],E=8191&I,A=I>>>13,T=0|i[5],M=8191&T,S=T>>>13,C=0|i[6],k=8191&C,_=C>>>13,P=0|i[7],O=8191&P,L=P>>>13,B=0|i[8],N=8191&B,R=B>>>13,D=0|i[9],V=8191&D,U=D>>>13,q=0|a[0],F=8191&q,K=q>>>13,H=0|a[1],W=8191&H,$=H>>>13,j=0|a[2],z=8191&j,Z=j>>>13,G=0|a[3],Q=8191&G,J=G>>>13,X=0|a[4],Y=8191&X,ee=X>>>13,te=0|a[5],re=8191&te,oe=te>>>13,ne=0|a[6],se=8191&ne,ie=ne>>>13,ae=0|a[7],ue=8191&ae,ce=ae>>>13,le=0|a[8],de=8191&le,he=le>>>13,pe=0|a[9],me=8191&pe,fe=pe>>>13;r.negative=e.negative^t.negative,r.length=19;var ye=(c+(o=Math.imul(d,F))|0)+((8191&(n=(n=Math.imul(d,K))+Math.imul(h,F)|0))<<13)|0;c=((s=Math.imul(h,K))+(n>>>13)|0)+(ye>>>26)|0,ye&=67108863,o=Math.imul(m,F),n=(n=Math.imul(m,K))+Math.imul(f,F)|0,s=Math.imul(f,K);var ge=(c+(o=o+Math.imul(d,W)|0)|0)+((8191&(n=(n=n+Math.imul(d,$)|0)+Math.imul(h,W)|0))<<13)|0;c=((s=s+Math.imul(h,$)|0)+(n>>>13)|0)+(ge>>>26)|0,ge&=67108863,o=Math.imul(g,F),n=(n=Math.imul(g,K))+Math.imul(w,F)|0,s=Math.imul(w,K),o=o+Math.imul(m,W)|0,n=(n=n+Math.imul(m,$)|0)+Math.imul(f,W)|0,s=s+Math.imul(f,$)|0;var we=(c+(o=o+Math.imul(d,z)|0)|0)+((8191&(n=(n=n+Math.imul(d,Z)|0)+Math.imul(h,z)|0))<<13)|0;c=((s=s+Math.imul(h,Z)|0)+(n>>>13)|0)+(we>>>26)|0,we&=67108863,o=Math.imul(x,F),n=(n=Math.imul(x,K))+Math.imul(b,F)|0,s=Math.imul(b,K),o=o+Math.imul(g,W)|0,n=(n=n+Math.imul(g,$)|0)+Math.imul(w,W)|0,s=s+Math.imul(w,$)|0,o=o+Math.imul(m,z)|0,n=(n=n+Math.imul(m,Z)|0)+Math.imul(f,z)|0,s=s+Math.imul(f,Z)|0;var ve=(c+(o=o+Math.imul(d,Q)|0)|0)+((8191&(n=(n=n+Math.imul(d,J)|0)+Math.imul(h,Q)|0))<<13)|0;c=((s=s+Math.imul(h,J)|0)+(n>>>13)|0)+(ve>>>26)|0,ve&=67108863,o=Math.imul(E,F),n=(n=Math.imul(E,K))+Math.imul(A,F)|0,s=Math.imul(A,K),o=o+Math.imul(x,W)|0,n=(n=n+Math.imul(x,$)|0)+Math.imul(b,W)|0,s=s+Math.imul(b,$)|0,o=o+Math.imul(g,z)|0,n=(n=n+Math.imul(g,Z)|0)+Math.imul(w,z)|0,s=s+Math.imul(w,Z)|0,o=o+Math.imul(m,Q)|0,n=(n=n+Math.imul(m,J)|0)+Math.imul(f,Q)|0,s=s+Math.imul(f,J)|0;var xe=(c+(o=o+Math.imul(d,Y)|0)|0)+((8191&(n=(n=n+Math.imul(d,ee)|0)+Math.imul(h,Y)|0))<<13)|0;c=((s=s+Math.imul(h,ee)|0)+(n>>>13)|0)+(xe>>>26)|0,xe&=67108863,o=Math.imul(M,F),n=(n=Math.imul(M,K))+Math.imul(S,F)|0,s=Math.imul(S,K),o=o+Math.imul(E,W)|0,n=(n=n+Math.imul(E,$)|0)+Math.imul(A,W)|0,s=s+Math.imul(A,$)|0,o=o+Math.imul(x,z)|0,n=(n=n+Math.imul(x,Z)|0)+Math.imul(b,z)|0,s=s+Math.imul(b,Z)|0,o=o+Math.imul(g,Q)|0,n=(n=n+Math.imul(g,J)|0)+Math.imul(w,Q)|0,s=s+Math.imul(w,J)|0,o=o+Math.imul(m,Y)|0,n=(n=n+Math.imul(m,ee)|0)+Math.imul(f,Y)|0,s=s+Math.imul(f,ee)|0;var be=(c+(o=o+Math.imul(d,re)|0)|0)+((8191&(n=(n=n+Math.imul(d,oe)|0)+Math.imul(h,re)|0))<<13)|0;c=((s=s+Math.imul(h,oe)|0)+(n>>>13)|0)+(be>>>26)|0,be&=67108863,o=Math.imul(k,F),n=(n=Math.imul(k,K))+Math.imul(_,F)|0,s=Math.imul(_,K),o=o+Math.imul(M,W)|0,n=(n=n+Math.imul(M,$)|0)+Math.imul(S,W)|0,s=s+Math.imul(S,$)|0,o=o+Math.imul(E,z)|0,n=(n=n+Math.imul(E,Z)|0)+Math.imul(A,z)|0,s=s+Math.imul(A,Z)|0,o=o+Math.imul(x,Q)|0,n=(n=n+Math.imul(x,J)|0)+Math.imul(b,Q)|0,s=s+Math.imul(b,J)|0,o=o+Math.imul(g,Y)|0,n=(n=n+Math.imul(g,ee)|0)+Math.imul(w,Y)|0,s=s+Math.imul(w,ee)|0,o=o+Math.imul(m,re)|0,n=(n=n+Math.imul(m,oe)|0)+Math.imul(f,re)|0,s=s+Math.imul(f,oe)|0;var Ie=(c+(o=o+Math.imul(d,se)|0)|0)+((8191&(n=(n=n+Math.imul(d,ie)|0)+Math.imul(h,se)|0))<<13)|0;c=((s=s+Math.imul(h,ie)|0)+(n>>>13)|0)+(Ie>>>26)|0,Ie&=67108863,o=Math.imul(O,F),n=(n=Math.imul(O,K))+Math.imul(L,F)|0,s=Math.imul(L,K),o=o+Math.imul(k,W)|0,n=(n=n+Math.imul(k,$)|0)+Math.imul(_,W)|0,s=s+Math.imul(_,$)|0,o=o+Math.imul(M,z)|0,n=(n=n+Math.imul(M,Z)|0)+Math.imul(S,z)|0,s=s+Math.imul(S,Z)|0,o=o+Math.imul(E,Q)|0,n=(n=n+Math.imul(E,J)|0)+Math.imul(A,Q)|0,s=s+Math.imul(A,J)|0,o=o+Math.imul(x,Y)|0,n=(n=n+Math.imul(x,ee)|0)+Math.imul(b,Y)|0,s=s+Math.imul(b,ee)|0,o=o+Math.imul(g,re)|0,n=(n=n+Math.imul(g,oe)|0)+Math.imul(w,re)|0,s=s+Math.imul(w,oe)|0,o=o+Math.imul(m,se)|0,n=(n=n+Math.imul(m,ie)|0)+Math.imul(f,se)|0,s=s+Math.imul(f,ie)|0;var Ee=(c+(o=o+Math.imul(d,ue)|0)|0)+((8191&(n=(n=n+Math.imul(d,ce)|0)+Math.imul(h,ue)|0))<<13)|0;c=((s=s+Math.imul(h,ce)|0)+(n>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,o=Math.imul(N,F),n=(n=Math.imul(N,K))+Math.imul(R,F)|0,s=Math.imul(R,K),o=o+Math.imul(O,W)|0,n=(n=n+Math.imul(O,$)|0)+Math.imul(L,W)|0,s=s+Math.imul(L,$)|0,o=o+Math.imul(k,z)|0,n=(n=n+Math.imul(k,Z)|0)+Math.imul(_,z)|0,s=s+Math.imul(_,Z)|0,o=o+Math.imul(M,Q)|0,n=(n=n+Math.imul(M,J)|0)+Math.imul(S,Q)|0,s=s+Math.imul(S,J)|0,o=o+Math.imul(E,Y)|0,n=(n=n+Math.imul(E,ee)|0)+Math.imul(A,Y)|0,s=s+Math.imul(A,ee)|0,o=o+Math.imul(x,re)|0,n=(n=n+Math.imul(x,oe)|0)+Math.imul(b,re)|0,s=s+Math.imul(b,oe)|0,o=o+Math.imul(g,se)|0,n=(n=n+Math.imul(g,ie)|0)+Math.imul(w,se)|0,s=s+Math.imul(w,ie)|0,o=o+Math.imul(m,ue)|0,n=(n=n+Math.imul(m,ce)|0)+Math.imul(f,ue)|0,s=s+Math.imul(f,ce)|0;var Ae=(c+(o=o+Math.imul(d,de)|0)|0)+((8191&(n=(n=n+Math.imul(d,he)|0)+Math.imul(h,de)|0))<<13)|0;c=((s=s+Math.imul(h,he)|0)+(n>>>13)|0)+(Ae>>>26)|0,Ae&=67108863,o=Math.imul(V,F),n=(n=Math.imul(V,K))+Math.imul(U,F)|0,s=Math.imul(U,K),o=o+Math.imul(N,W)|0,n=(n=n+Math.imul(N,$)|0)+Math.imul(R,W)|0,s=s+Math.imul(R,$)|0,o=o+Math.imul(O,z)|0,n=(n=n+Math.imul(O,Z)|0)+Math.imul(L,z)|0,s=s+Math.imul(L,Z)|0,o=o+Math.imul(k,Q)|0,n=(n=n+Math.imul(k,J)|0)+Math.imul(_,Q)|0,s=s+Math.imul(_,J)|0,o=o+Math.imul(M,Y)|0,n=(n=n+Math.imul(M,ee)|0)+Math.imul(S,Y)|0,s=s+Math.imul(S,ee)|0,o=o+Math.imul(E,re)|0,n=(n=n+Math.imul(E,oe)|0)+Math.imul(A,re)|0,s=s+Math.imul(A,oe)|0,o=o+Math.imul(x,se)|0,n=(n=n+Math.imul(x,ie)|0)+Math.imul(b,se)|0,s=s+Math.imul(b,ie)|0,o=o+Math.imul(g,ue)|0,n=(n=n+Math.imul(g,ce)|0)+Math.imul(w,ue)|0,s=s+Math.imul(w,ce)|0,o=o+Math.imul(m,de)|0,n=(n=n+Math.imul(m,he)|0)+Math.imul(f,de)|0,s=s+Math.imul(f,he)|0;var Te=(c+(o=o+Math.imul(d,me)|0)|0)+((8191&(n=(n=n+Math.imul(d,fe)|0)+Math.imul(h,me)|0))<<13)|0;c=((s=s+Math.imul(h,fe)|0)+(n>>>13)|0)+(Te>>>26)|0,Te&=67108863,o=Math.imul(V,W),n=(n=Math.imul(V,$))+Math.imul(U,W)|0,s=Math.imul(U,$),o=o+Math.imul(N,z)|0,n=(n=n+Math.imul(N,Z)|0)+Math.imul(R,z)|0,s=s+Math.imul(R,Z)|0,o=o+Math.imul(O,Q)|0,n=(n=n+Math.imul(O,J)|0)+Math.imul(L,Q)|0,s=s+Math.imul(L,J)|0,o=o+Math.imul(k,Y)|0,n=(n=n+Math.imul(k,ee)|0)+Math.imul(_,Y)|0,s=s+Math.imul(_,ee)|0,o=o+Math.imul(M,re)|0,n=(n=n+Math.imul(M,oe)|0)+Math.imul(S,re)|0,s=s+Math.imul(S,oe)|0,o=o+Math.imul(E,se)|0,n=(n=n+Math.imul(E,ie)|0)+Math.imul(A,se)|0,s=s+Math.imul(A,ie)|0,o=o+Math.imul(x,ue)|0,n=(n=n+Math.imul(x,ce)|0)+Math.imul(b,ue)|0,s=s+Math.imul(b,ce)|0,o=o+Math.imul(g,de)|0,n=(n=n+Math.imul(g,he)|0)+Math.imul(w,de)|0,s=s+Math.imul(w,he)|0;var Me=(c+(o=o+Math.imul(m,me)|0)|0)+((8191&(n=(n=n+Math.imul(m,fe)|0)+Math.imul(f,me)|0))<<13)|0;c=((s=s+Math.imul(f,fe)|0)+(n>>>13)|0)+(Me>>>26)|0,Me&=67108863,o=Math.imul(V,z),n=(n=Math.imul(V,Z))+Math.imul(U,z)|0,s=Math.imul(U,Z),o=o+Math.imul(N,Q)|0,n=(n=n+Math.imul(N,J)|0)+Math.imul(R,Q)|0,s=s+Math.imul(R,J)|0,o=o+Math.imul(O,Y)|0,n=(n=n+Math.imul(O,ee)|0)+Math.imul(L,Y)|0,s=s+Math.imul(L,ee)|0,o=o+Math.imul(k,re)|0,n=(n=n+Math.imul(k,oe)|0)+Math.imul(_,re)|0,s=s+Math.imul(_,oe)|0,o=o+Math.imul(M,se)|0,n=(n=n+Math.imul(M,ie)|0)+Math.imul(S,se)|0,s=s+Math.imul(S,ie)|0,o=o+Math.imul(E,ue)|0,n=(n=n+Math.imul(E,ce)|0)+Math.imul(A,ue)|0,s=s+Math.imul(A,ce)|0,o=o+Math.imul(x,de)|0,n=(n=n+Math.imul(x,he)|0)+Math.imul(b,de)|0,s=s+Math.imul(b,he)|0;var Se=(c+(o=o+Math.imul(g,me)|0)|0)+((8191&(n=(n=n+Math.imul(g,fe)|0)+Math.imul(w,me)|0))<<13)|0;c=((s=s+Math.imul(w,fe)|0)+(n>>>13)|0)+(Se>>>26)|0,Se&=67108863,o=Math.imul(V,Q),n=(n=Math.imul(V,J))+Math.imul(U,Q)|0,s=Math.imul(U,J),o=o+Math.imul(N,Y)|0,n=(n=n+Math.imul(N,ee)|0)+Math.imul(R,Y)|0,s=s+Math.imul(R,ee)|0,o=o+Math.imul(O,re)|0,n=(n=n+Math.imul(O,oe)|0)+Math.imul(L,re)|0,s=s+Math.imul(L,oe)|0,o=o+Math.imul(k,se)|0,n=(n=n+Math.imul(k,ie)|0)+Math.imul(_,se)|0,s=s+Math.imul(_,ie)|0,o=o+Math.imul(M,ue)|0,n=(n=n+Math.imul(M,ce)|0)+Math.imul(S,ue)|0,s=s+Math.imul(S,ce)|0,o=o+Math.imul(E,de)|0,n=(n=n+Math.imul(E,he)|0)+Math.imul(A,de)|0,s=s+Math.imul(A,he)|0;var Ce=(c+(o=o+Math.imul(x,me)|0)|0)+((8191&(n=(n=n+Math.imul(x,fe)|0)+Math.imul(b,me)|0))<<13)|0;c=((s=s+Math.imul(b,fe)|0)+(n>>>13)|0)+(Ce>>>26)|0,Ce&=67108863,o=Math.imul(V,Y),n=(n=Math.imul(V,ee))+Math.imul(U,Y)|0,s=Math.imul(U,ee),o=o+Math.imul(N,re)|0,n=(n=n+Math.imul(N,oe)|0)+Math.imul(R,re)|0,s=s+Math.imul(R,oe)|0,o=o+Math.imul(O,se)|0,n=(n=n+Math.imul(O,ie)|0)+Math.imul(L,se)|0,s=s+Math.imul(L,ie)|0,o=o+Math.imul(k,ue)|0,n=(n=n+Math.imul(k,ce)|0)+Math.imul(_,ue)|0,s=s+Math.imul(_,ce)|0,o=o+Math.imul(M,de)|0,n=(n=n+Math.imul(M,he)|0)+Math.imul(S,de)|0,s=s+Math.imul(S,he)|0;var ke=(c+(o=o+Math.imul(E,me)|0)|0)+((8191&(n=(n=n+Math.imul(E,fe)|0)+Math.imul(A,me)|0))<<13)|0;c=((s=s+Math.imul(A,fe)|0)+(n>>>13)|0)+(ke>>>26)|0,ke&=67108863,o=Math.imul(V,re),n=(n=Math.imul(V,oe))+Math.imul(U,re)|0,s=Math.imul(U,oe),o=o+Math.imul(N,se)|0,n=(n=n+Math.imul(N,ie)|0)+Math.imul(R,se)|0,s=s+Math.imul(R,ie)|0,o=o+Math.imul(O,ue)|0,n=(n=n+Math.imul(O,ce)|0)+Math.imul(L,ue)|0,s=s+Math.imul(L,ce)|0,o=o+Math.imul(k,de)|0,n=(n=n+Math.imul(k,he)|0)+Math.imul(_,de)|0,s=s+Math.imul(_,he)|0;var _e=(c+(o=o+Math.imul(M,me)|0)|0)+((8191&(n=(n=n+Math.imul(M,fe)|0)+Math.imul(S,me)|0))<<13)|0;c=((s=s+Math.imul(S,fe)|0)+(n>>>13)|0)+(_e>>>26)|0,_e&=67108863,o=Math.imul(V,se),n=(n=Math.imul(V,ie))+Math.imul(U,se)|0,s=Math.imul(U,ie),o=o+Math.imul(N,ue)|0,n=(n=n+Math.imul(N,ce)|0)+Math.imul(R,ue)|0,s=s+Math.imul(R,ce)|0,o=o+Math.imul(O,de)|0,n=(n=n+Math.imul(O,he)|0)+Math.imul(L,de)|0,s=s+Math.imul(L,he)|0;var Pe=(c+(o=o+Math.imul(k,me)|0)|0)+((8191&(n=(n=n+Math.imul(k,fe)|0)+Math.imul(_,me)|0))<<13)|0;c=((s=s+Math.imul(_,fe)|0)+(n>>>13)|0)+(Pe>>>26)|0,Pe&=67108863,o=Math.imul(V,ue),n=(n=Math.imul(V,ce))+Math.imul(U,ue)|0,s=Math.imul(U,ce),o=o+Math.imul(N,de)|0,n=(n=n+Math.imul(N,he)|0)+Math.imul(R,de)|0,s=s+Math.imul(R,he)|0;var Oe=(c+(o=o+Math.imul(O,me)|0)|0)+((8191&(n=(n=n+Math.imul(O,fe)|0)+Math.imul(L,me)|0))<<13)|0;c=((s=s+Math.imul(L,fe)|0)+(n>>>13)|0)+(Oe>>>26)|0,Oe&=67108863,o=Math.imul(V,de),n=(n=Math.imul(V,he))+Math.imul(U,de)|0,s=Math.imul(U,he);var Le=(c+(o=o+Math.imul(N,me)|0)|0)+((8191&(n=(n=n+Math.imul(N,fe)|0)+Math.imul(R,me)|0))<<13)|0;c=((s=s+Math.imul(R,fe)|0)+(n>>>13)|0)+(Le>>>26)|0,Le&=67108863;var Be=(c+(o=Math.imul(V,me))|0)+((8191&(n=(n=Math.imul(V,fe))+Math.imul(U,me)|0))<<13)|0;return c=((s=Math.imul(U,fe))+(n>>>13)|0)+(Be>>>26)|0,Be&=67108863,u[0]=ye,u[1]=ge,u[2]=we,u[3]=ve,u[4]=xe,u[5]=be,u[6]=Ie,u[7]=Ee,u[8]=Ae,u[9]=Te,u[10]=Me,u[11]=Se,u[12]=Ce,u[13]=ke,u[14]=_e,u[15]=Pe,u[16]=Oe,u[17]=Le,u[18]=Be,0!==c&&(u[19]=c,r.length++),r};function y(e,t,r){r.negative=t.negative^e.negative,r.length=e.length+t.length;for(var o=0,n=0,s=0;s<r.length-1;s++){var i=n;n=0;for(var a=67108863&o,u=Math.min(s,t.length-1),c=Math.max(0,s-e.length+1);c<=u;c++){var l=s-c,d=(0|e.words[l])*(0|t.words[c]),h=67108863&d;a=67108863&(h=h+a|0),n+=(i=(i=i+(d/67108864|0)|0)+(h>>>26)|0)>>>26,i&=67108863}r.words[s]=a,o=i,i=n}return 0!==o?r.words[s]=o:r.length--,r._strip()}function g(e,t,r){return y(e,t,r)}Math.imul||(f=m),n.prototype.mulTo=function(e,t){var r=this.length+e.length;return 10===this.length&&10===e.length?f(this,e,t):r<63?m(this,e,t):r<1024?y(this,e,t):g(this,e,t)},n.prototype.mul=function(e){var t=new n(null);return t.words=new Array(this.length+e.length),this.mulTo(e,t)},n.prototype.mulf=function(e){var t=new n(null);return t.words=new Array(this.length+e.length),g(this,e,t)},n.prototype.imul=function(e){return this.clone().mulTo(e,this)},n.prototype.imuln=function(e){var t=e<0;t&&(e=-e),r("number"==typeof e),r(e<67108864);for(var o=0,n=0;n<this.length;n++){var s=(0|this.words[n])*e,i=(67108863&s)+(67108863&o);o>>=26,o+=s/67108864|0,o+=i>>>26,this.words[n]=67108863&i}return 0!==o&&(this.words[n]=o,this.length++),t?this.ineg():this},n.prototype.muln=function(e){return this.clone().imuln(e)},n.prototype.sqr=function(){return this.mul(this)},n.prototype.isqr=function(){return this.imul(this.clone())},n.prototype.pow=function(e){var t=function(e){for(var t=new Array(e.bitLength()),r=0;r<t.length;r++){var o=r/26|0,n=r%26;t[r]=e.words[o]>>>n&1}return t}(e);if(0===t.length)return new n(1);for(var r=this,o=0;o<t.length&&0===t[o];o++,r=r.sqr());if(++o<t.length)for(var s=r.sqr();o<t.length;o++,s=s.sqr())0!==t[o]&&(r=r.mul(s));return r},n.prototype.iushln=function(e){r("number"==typeof e&&e>=0);var t,o=e%26,n=(e-o)/26,s=67108863>>>26-o<<26-o;if(0!==o){var i=0;for(t=0;t<this.length;t++){var a=this.words[t]&s,u=(0|this.words[t])-a<<o;this.words[t]=u|i,i=a>>>26-o}i&&(this.words[t]=i,this.length++)}if(0!==n){for(t=this.length-1;t>=0;t--)this.words[t+n]=this.words[t];for(t=0;t<n;t++)this.words[t]=0;this.length+=n}return this._strip()},n.prototype.ishln=function(e){return r(0===this.negative),this.iushln(e)},n.prototype.iushrn=function(e,t,o){var n;r("number"==typeof e&&e>=0),n=t?(t-t%26)/26:0;var s=e%26,i=Math.min((e-s)/26,this.length),a=67108863^67108863>>>s<<s,u=o;if(n-=i,n=Math.max(0,n),u){for(var c=0;c<i;c++)u.words[c]=this.words[c];u.length=i}if(0===i);else if(this.length>i)for(this.length-=i,c=0;c<this.length;c++)this.words[c]=this.words[c+i];else this.words[0]=0,this.length=1;var l=0;for(c=this.length-1;c>=0&&(0!==l||c>=n);c--){var d=0|this.words[c];this.words[c]=l<<26-s|d>>>s,l=d&a}return u&&0!==l&&(u.words[u.length++]=l),0===this.length&&(this.words[0]=0,this.length=1),this._strip()},n.prototype.ishrn=function(e,t,o){return r(0===this.negative),this.iushrn(e,t,o)},n.prototype.shln=function(e){return this.clone().ishln(e)},n.prototype.ushln=function(e){return this.clone().iushln(e)},n.prototype.shrn=function(e){return this.clone().ishrn(e)},n.prototype.ushrn=function(e){return this.clone().iushrn(e)},n.prototype.testn=function(e){r("number"==typeof e&&e>=0);var t=e%26,o=(e-t)/26,n=1<<t;return this.length<=o?0:!!(this.words[o]&n)},n.prototype.imaskn=function(e){r("number"==typeof e&&e>=0);var t=e%26,o=(e-t)/26;if(r(0===this.negative,"imaskn works only with positive numbers"),this.length<=o)return this;if(0!==t&&o++,this.length=Math.min(o,this.length),0!==t){var n=67108863^67108863>>>t<<t;this.words[this.length-1]&=n}return this._strip()},n.prototype.maskn=function(e){return this.clone().imaskn(e)},n.prototype.iaddn=function(e){return r("number"==typeof e),r(e<67108864),e<0?this.isubn(-e):0!==this.negative?1===this.length&&(0|this.words[0])<=e?(this.words[0]=e-(0|this.words[0]),this.negative=0,this):(this.negative=0,this.isubn(e),this.negative=1,this):this._iaddn(e)},n.prototype._iaddn=function(e){this.words[0]+=e;for(var t=0;t<this.length&&this.words[t]>=67108864;t++)this.words[t]-=67108864,t===this.length-1?this.words[t+1]=1:this.words[t+1]++;return this.length=Math.max(this.length,t+1),this},n.prototype.isubn=function(e){if(r("number"==typeof e),r(e<67108864),e<0)return this.iaddn(-e);if(0!==this.negative)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var t=0;t<this.length&&this.words[t]<0;t++)this.words[t]+=67108864,this.words[t+1]-=1;return this._strip()},n.prototype.addn=function(e){return this.clone().iaddn(e)},n.prototype.subn=function(e){return this.clone().isubn(e)},n.prototype.iabs=function(){return this.negative=0,this},n.prototype.abs=function(){return this.clone().iabs()},n.prototype._ishlnsubmul=function(e,t,o){var n,s,i=e.length+o;this._expand(i);var a=0;for(n=0;n<e.length;n++){s=(0|this.words[n+o])+a;var u=(0|e.words[n])*t;a=((s-=67108863&u)>>26)-(u/67108864|0),this.words[n+o]=67108863&s}for(;n<this.length-o;n++)a=(s=(0|this.words[n+o])+a)>>26,this.words[n+o]=67108863&s;if(0===a)return this._strip();for(r(-1===a),a=0,n=0;n<this.length;n++)a=(s=-(0|this.words[n])+a)>>26,this.words[n]=67108863&s;return this.negative=1,this._strip()},n.prototype._wordDiv=function(e,t){var r=(this.length,e.length),o=this.clone(),s=e,i=0|s.words[s.length-1];0!=(r=26-this._countBits(i))&&(s=s.ushln(r),o.iushln(r),i=0|s.words[s.length-1]);var a,u=o.length-s.length;if("mod"!==t){(a=new n(null)).length=u+1,a.words=new Array(a.length);for(var c=0;c<a.length;c++)a.words[c]=0}var l=o.clone()._ishlnsubmul(s,1,u);0===l.negative&&(o=l,a&&(a.words[u]=1));for(var d=u-1;d>=0;d--){var h=67108864*(0|o.words[s.length+d])+(0|o.words[s.length+d-1]);for(h=Math.min(h/i|0,67108863),o._ishlnsubmul(s,h,d);0!==o.negative;)h--,o.negative=0,o._ishlnsubmul(s,1,d),o.isZero()||(o.negative^=1);a&&(a.words[d]=h)}return a&&a._strip(),o._strip(),"div"!==t&&0!==r&&o.iushrn(r),{div:a||null,mod:o}},n.prototype.divmod=function(e,t,o){return r(!e.isZero()),this.isZero()?{div:new n(0),mod:new n(0)}:0!==this.negative&&0===e.negative?(a=this.neg().divmod(e,t),"mod"!==t&&(s=a.div.neg()),"div"!==t&&(i=a.mod.neg(),o&&0!==i.negative&&i.iadd(e)),{div:s,mod:i}):0===this.negative&&0!==e.negative?(a=this.divmod(e.neg(),t),"mod"!==t&&(s=a.div.neg()),{div:s,mod:a.mod}):0!=(this.negative&e.negative)?(a=this.neg().divmod(e.neg(),t),"div"!==t&&(i=a.mod.neg(),o&&0!==i.negative&&i.isub(e)),{div:a.div,mod:i}):e.length>this.length||this.cmp(e)<0?{div:new n(0),mod:this}:1===e.length?"div"===t?{div:this.divn(e.words[0]),mod:null}:"mod"===t?{div:null,mod:new n(this.modrn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new n(this.modrn(e.words[0]))}:this._wordDiv(e,t);var s,i,a},n.prototype.div=function(e){return this.divmod(e,"div",0).div},n.prototype.mod=function(e){return this.divmod(e,"mod",0).mod},n.prototype.umod=function(e){return this.divmod(e,"mod",1).mod},n.prototype.divRound=function(e){var t=this.divmod(e);if(t.mod.isZero())return t.div;var r=0!==t.div.negative?t.mod.isub(e):t.mod,o=e.ushrn(1),n=e.andln(1),s=r.cmp(o);return s<0||1===n&&0===s?t.div:0!==t.div.negative?t.div.isubn(1):t.div.iaddn(1)},n.prototype.modrn=function(e){var t=e<0;t&&(e=-e),r(e<=67108863);for(var o=(1<<26)%e,n=0,s=this.length-1;s>=0;s--)n=(o*n+(0|this.words[s]))%e;return t?-n:n},n.prototype.modn=function(e){return this.modrn(e)},n.prototype.idivn=function(e){var t=e<0;t&&(e=-e),r(e<=67108863);for(var o=0,n=this.length-1;n>=0;n--){var s=(0|this.words[n])+67108864*o;this.words[n]=s/e|0,o=s%e}return this._strip(),t?this.ineg():this},n.prototype.divn=function(e){return this.clone().idivn(e)},n.prototype.egcd=function(e){r(0===e.negative),r(!e.isZero());var t=this,o=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var s=new n(1),i=new n(0),a=new n(0),u=new n(1),c=0;t.isEven()&&o.isEven();)t.iushrn(1),o.iushrn(1),++c;for(var l=o.clone(),d=t.clone();!t.isZero();){for(var h=0,p=1;0==(t.words[0]&p)&&h<26;++h,p<<=1);if(h>0)for(t.iushrn(h);h-- >0;)(s.isOdd()||i.isOdd())&&(s.iadd(l),i.isub(d)),s.iushrn(1),i.iushrn(1);for(var m=0,f=1;0==(o.words[0]&f)&&m<26;++m,f<<=1);if(m>0)for(o.iushrn(m);m-- >0;)(a.isOdd()||u.isOdd())&&(a.iadd(l),u.isub(d)),a.iushrn(1),u.iushrn(1);t.cmp(o)>=0?(t.isub(o),s.isub(a),i.isub(u)):(o.isub(t),a.isub(s),u.isub(i))}return{a:a,b:u,gcd:o.iushln(c)}},n.prototype._invmp=function(e){r(0===e.negative),r(!e.isZero());var t=this,o=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var s,i=new n(1),a=new n(0),u=o.clone();t.cmpn(1)>0&&o.cmpn(1)>0;){for(var c=0,l=1;0==(t.words[0]&l)&&c<26;++c,l<<=1);if(c>0)for(t.iushrn(c);c-- >0;)i.isOdd()&&i.iadd(u),i.iushrn(1);for(var d=0,h=1;0==(o.words[0]&h)&&d<26;++d,h<<=1);if(d>0)for(o.iushrn(d);d-- >0;)a.isOdd()&&a.iadd(u),a.iushrn(1);t.cmp(o)>=0?(t.isub(o),i.isub(a)):(o.isub(t),a.isub(i))}return(s=0===t.cmpn(1)?i:a).cmpn(0)<0&&s.iadd(e),s},n.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var t=this.clone(),r=e.clone();t.negative=0,r.negative=0;for(var o=0;t.isEven()&&r.isEven();o++)t.iushrn(1),r.iushrn(1);for(;;){for(;t.isEven();)t.iushrn(1);for(;r.isEven();)r.iushrn(1);var n=t.cmp(r);if(n<0){var s=t;t=r,r=s}else if(0===n||0===r.cmpn(1))break;t.isub(r)}return r.iushln(o)},n.prototype.invm=function(e){return this.egcd(e).a.umod(e)},n.prototype.isEven=function(){return 0==(1&this.words[0])},n.prototype.isOdd=function(){return 1==(1&this.words[0])},n.prototype.andln=function(e){return this.words[0]&e},n.prototype.bincn=function(e){r("number"==typeof e);var t=e%26,o=(e-t)/26,n=1<<t;if(this.length<=o)return this._expand(o+1),this.words[o]|=n,this;for(var s=n,i=o;0!==s&&i<this.length;i++){var a=0|this.words[i];s=(a+=s)>>>26,a&=67108863,this.words[i]=a}return 0!==s&&(this.words[i]=s,this.length++),this},n.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},n.prototype.cmpn=function(e){var t,o=e<0;if(0!==this.negative&&!o)return-1;if(0===this.negative&&o)return 1;if(this._strip(),this.length>1)t=1;else{o&&(e=-e),r(e<=67108863,"Number is too big");var n=0|this.words[0];t=n===e?0:n<e?-1:1}return 0!==this.negative?0|-t:t},n.prototype.cmp=function(e){if(0!==this.negative&&0===e.negative)return-1;if(0===this.negative&&0!==e.negative)return 1;var t=this.ucmp(e);return 0!==this.negative?0|-t:t},n.prototype.ucmp=function(e){if(this.length>e.length)return 1;if(this.length<e.length)return-1;for(var t=0,r=this.length-1;r>=0;r--){var o=0|this.words[r],n=0|e.words[r];if(o!==n){o<n?t=-1:o>n&&(t=1);break}}return t},n.prototype.gtn=function(e){return 1===this.cmpn(e)},n.prototype.gt=function(e){return 1===this.cmp(e)},n.prototype.gten=function(e){return this.cmpn(e)>=0},n.prototype.gte=function(e){return this.cmp(e)>=0},n.prototype.ltn=function(e){return-1===this.cmpn(e)},n.prototype.lt=function(e){return-1===this.cmp(e)},n.prototype.lten=function(e){return this.cmpn(e)<=0},n.prototype.lte=function(e){return this.cmp(e)<=0},n.prototype.eqn=function(e){return 0===this.cmpn(e)},n.prototype.eq=function(e){return 0===this.cmp(e)},n.red=function(e){return new A(e)},n.prototype.toRed=function(e){return r(!this.red,"Already a number in reduction context"),r(0===this.negative,"red works only with positives"),e.convertTo(this)._forceRed(e)},n.prototype.fromRed=function(){return r(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},n.prototype._forceRed=function(e){return this.red=e,this},n.prototype.forceRed=function(e){return r(!this.red,"Already a number in reduction context"),this._forceRed(e)},n.prototype.redAdd=function(e){return r(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},n.prototype.redIAdd=function(e){return r(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},n.prototype.redSub=function(e){return r(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},n.prototype.redISub=function(e){return r(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},n.prototype.redShl=function(e){return r(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},n.prototype.redMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},n.prototype.redIMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},n.prototype.redSqr=function(){return r(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},n.prototype.redISqr=function(){return r(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},n.prototype.redSqrt=function(){return r(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},n.prototype.redInvm=function(){return r(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},n.prototype.redNeg=function(){return r(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},n.prototype.redPow=function(e){return r(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var w={k256:null,p224:null,p192:null,p25519:null};function v(e,t){this.name=e,this.p=new n(t,16),this.n=this.p.bitLength(),this.k=new n(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function x(){v.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function b(){v.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function I(){v.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function E(){v.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function A(e){if("string"==typeof e){var t=n._prime(e);this.m=t.p,this.prime=t}else r(e.gtn(1),"modulus must be greater than 1"),this.m=e,this.prime=null}function T(e){A.call(this,e),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new n(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}v.prototype._tmp=function(){var e=new n(null);return e.words=new Array(Math.ceil(this.n/13)),e},v.prototype.ireduce=function(e){var t,r=e;do{this.split(r,this.tmp),t=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(t>this.n);var o=t<this.n?-1:r.ucmp(this.p);return 0===o?(r.words[0]=0,r.length=1):o>0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},v.prototype.split=function(e,t){e.iushrn(this.n,0,t)},v.prototype.imulK=function(e){return e.imul(this.k)},o(x,v),x.prototype.split=function(e,t){for(var r=4194303,o=Math.min(e.length,9),n=0;n<o;n++)t.words[n]=e.words[n];if(t.length=o,e.length<=9)return e.words[0]=0,void(e.length=1);var s=e.words[9];for(t.words[t.length++]=s&r,n=10;n<e.length;n++){var i=0|e.words[n];e.words[n-10]=(i&r)<<4|s>>>22,s=i}s>>>=22,e.words[n-10]=s,0===s&&e.length>10?e.length-=10:e.length-=9},x.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var t=0,r=0;r<e.length;r++){var o=0|e.words[r];t+=977*o,e.words[r]=67108863&t,t=64*o+(t/67108864|0)}return 0===e.words[e.length-1]&&(e.length--,0===e.words[e.length-1]&&e.length--),e},o(b,v),o(I,v),o(E,v),E.prototype.imulK=function(e){for(var t=0,r=0;r<e.length;r++){var o=19*(0|e.words[r])+t,n=67108863&o;o>>>=26,e.words[r]=n,t=o}return 0!==t&&(e.words[e.length++]=t),e},n._prime=function(e){if(w[e])return w[e];var t;if("k256"===e)t=new x;else if("p224"===e)t=new b;else if("p192"===e)t=new I;else{if("p25519"!==e)throw new Error("Unknown prime "+e);t=new E}return w[e]=t,t},A.prototype._verify1=function(e){r(0===e.negative,"red works only with positives"),r(e.red,"red works only with red numbers")},A.prototype._verify2=function(e,t){r(0==(e.negative|t.negative),"red works only with positives"),r(e.red&&e.red===t.red,"red works only with red numbers")},A.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):(c(e,e.umod(this.m)._forceRed(this)),e)},A.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},A.prototype.add=function(e,t){this._verify2(e,t);var r=e.add(t);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},A.prototype.iadd=function(e,t){this._verify2(e,t);var r=e.iadd(t);return r.cmp(this.m)>=0&&r.isub(this.m),r},A.prototype.sub=function(e,t){this._verify2(e,t);var r=e.sub(t);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},A.prototype.isub=function(e,t){this._verify2(e,t);var r=e.isub(t);return r.cmpn(0)<0&&r.iadd(this.m),r},A.prototype.shl=function(e,t){return this._verify1(e),this.imod(e.ushln(t))},A.prototype.imul=function(e,t){return this._verify2(e,t),this.imod(e.imul(t))},A.prototype.mul=function(e,t){return this._verify2(e,t),this.imod(e.mul(t))},A.prototype.isqr=function(e){return this.imul(e,e.clone())},A.prototype.sqr=function(e){return this.mul(e,e)},A.prototype.sqrt=function(e){if(e.isZero())return e.clone();var t=this.m.andln(3);if(r(t%2==1),3===t){var o=this.m.add(new n(1)).iushrn(2);return this.pow(e,o)}for(var s=this.m.subn(1),i=0;!s.isZero()&&0===s.andln(1);)i++,s.iushrn(1);r(!s.isZero());var a=new n(1).toRed(this),u=a.redNeg(),c=this.m.subn(1).iushrn(1),l=this.m.bitLength();for(l=new n(2*l*l).toRed(this);0!==this.pow(l,c).cmp(u);)l.redIAdd(u);for(var d=this.pow(l,s),h=this.pow(e,s.addn(1).iushrn(1)),p=this.pow(e,s),m=i;0!==p.cmp(a);){for(var f=p,y=0;0!==f.cmp(a);y++)f=f.redSqr();r(y<m);var g=this.pow(d,new n(1).iushln(m-y-1));h=h.redMul(g),d=g.redSqr(),p=p.redMul(d),m=y}return h},A.prototype.invm=function(e){var t=e._invmp(this.m);return 0!==t.negative?(t.negative=0,this.imod(t).redNeg()):this.imod(t)},A.prototype.pow=function(e,t){if(t.isZero())return new n(1).toRed(this);if(0===t.cmpn(1))return e.clone();var r=new Array(16);r[0]=new n(1).toRed(this),r[1]=e;for(var o=2;o<r.length;o++)r[o]=this.mul(r[o-1],e);var s=r[0],i=0,a=0,u=t.bitLength()%26;for(0===u&&(u=26),o=t.length-1;o>=0;o--){for(var c=t.words[o],l=u-1;l>=0;l--){var d=c>>l&1;s!==r[0]&&(s=this.sqr(s)),0!==d||0!==i?(i<<=1,i|=d,(4==++a||0===o&&0===l)&&(s=this.mul(s,r[i]),a=0,i=0)):a=0}u=26}return s},A.prototype.convertTo=function(e){var t=e.umod(this.m);return t===e?t.clone():t},A.prototype.convertFrom=function(e){var t=e.clone();return t.red=null,t},n.mont=function(e){return new T(e)},o(T,A),T.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},T.prototype.convertFrom=function(e){var t=this.imod(e.mul(this.rinv));return t.red=null,t},T.prototype.imul=function(e,t){if(e.isZero()||t.isZero())return e.words[0]=0,e.length=1,e;var r=e.imul(t),o=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),n=r.isub(o).iushrn(this.shift),s=n;return n.cmp(this.m)>=0?s=n.isub(this.m):n.cmpn(0)<0&&(s=n.iadd(this.m)),s._forceRed(this)},T.prototype.mul=function(e,t){if(e.isZero()||t.isZero())return new n(0)._forceRed(this);var r=e.mul(t),o=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),s=r.isub(o).iushrn(this.shift),i=s;return s.cmp(this.m)>=0?i=s.isub(this.m):s.cmpn(0)<0&&(i=s.iadd(this.m)),i._forceRed(this)},T.prototype.invm=function(e){return this.imod(e._invmp(this.m).mul(this.r2))._forceRed(this)}}(0,r);var F,K,H=q.exports,W=o(H);!function(t){var o=r&&r.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:1}),t.map=t.array=t.rustEnum=t.str=t.vecU8=t.tagged=t.vec=t.bool=t.option=t.publicKey=t.i256=t.u256=t.i128=t.u128=t.i64=t.u64=t.struct=t.f64=t.f32=t.i32=t.u32=t.i16=t.u16=t.i8=t.u8=void 0;const n=s,i=e,a=o(H);var u=s;Object.defineProperty(t,"u8",{enumerable:1,get:function(){return u.u8}}),Object.defineProperty(t,"i8",{enumerable:1,get:function(){return u.s8}}),Object.defineProperty(t,"u16",{enumerable:1,get:function(){return u.u16}}),Object.defineProperty(t,"i16",{enumerable:1,get:function(){return u.s16}}),Object.defineProperty(t,"u32",{enumerable:1,get:function(){return u.u32}}),Object.defineProperty(t,"i32",{enumerable:1,get:function(){return u.s32}}),Object.defineProperty(t,"f32",{enumerable:1,get:function(){return u.f32}}),Object.defineProperty(t,"f64",{enumerable:1,get:function(){return u.f64}}),Object.defineProperty(t,"struct",{enumerable:1,get:function(){return u.struct}});class c extends n.Layout{constructor(e,t,r){super(e,r),this.blob=(0,n.blob)(e),this.signed=t}decode(e,t=0){const r=new a.default(this.blob.decode(e,t),10,"le");return this.signed?r.fromTwos(8*this.span).clone():r}encode(e,t,r=0){return this.signed&&(e=e.toTwos(8*this.span)),this.blob.encode(e.toArrayLike(Buffer,"le",this.span),t,r)}}function l(e){return new c(8,0,e)}t.u64=l,t.i64=function(e){return new c(8,1,e)},t.u128=function(e){return new c(16,0,e)},t.i128=function(e){return new c(16,1,e)},t.u256=function(e){return new c(32,0,e)},t.i256=function(e){return new c(32,1,e)};class d extends n.Layout{constructor(e,t,r,o){super(e.span,o),this.layout=e,this.decoder=t,this.encoder=r}decode(e,t){return this.decoder(this.layout.decode(e,t))}encode(e,t,r){return this.layout.encode(this.encoder(e),t,r)}getSpan(e,t){return this.layout.getSpan(e,t)}}t.publicKey=function(e){return new d((0,n.blob)(32),(e=>new i.PublicKey(e)),(e=>e.toBuffer()),e)};class h extends n.Layout{constructor(e,t){super(-1,t),this.layout=e,this.discriminator=(0,n.u8)()}encode(e,t,r=0){return null==e?this.discriminator.encode(0,t,r):(this.discriminator.encode(1,t,r),this.layout.encode(e,t,r+1)+1)}decode(e,t=0){const r=this.discriminator.decode(e,t);if(0===r)return null;if(1===r)return this.layout.decode(e,t+1);throw new Error("Invalid option "+this.property)}getSpan(e,t=0){const r=this.discriminator.decode(e,t);if(0===r)return 1;if(1===r)return this.layout.getSpan(e,t+1)+1;throw new Error("Invalid option "+this.property)}}function p(e){if(0===e)return 0;if(1===e)return 1;throw new Error("Invalid bool: "+e)}function m(e){return e?1:0}function f(e){const t=(0,n.u32)("length"),r=(0,n.struct)([t,(0,n.blob)((0,n.offset)(t,-t.span),"data")]);return new d(r,(({data:e})=>e),(e=>({data:e})),e)}t.option=function(e,t){return new h(e,t)},t.bool=function(e){return new d((0,n.u8)(),p,m,e)},t.vec=function(e,t){const r=(0,n.u32)("length"),o=(0,n.struct)([r,(0,n.seq)(e,(0,n.offset)(r,-r.span),"values")]);return new d(o,(({values:e})=>e),(e=>({values:e})),t)},t.tagged=function(e,t,r){const o=(0,n.struct)([l("tag"),t.replicate("data")]);return new d(o,(function({tag:t,data:r}){if(!t.eq(e))throw new Error("Invalid tag, expected: "+e.toString("hex")+", got: "+t.toString("hex"));return r}),(t=>({tag:e,data:t})),r)},t.vecU8=f,t.str=function(e){return new d(f(),(e=>e.toString("utf-8")),(e=>Buffer.from(e,"utf-8")),e)},t.rustEnum=function(e,t,r){const o=(0,n.union)(null!=r?r:(0,n.u8)(),t);return e.forEach(((e,t)=>o.addVariant(t,e,e.property))),o},t.array=function(e,t,r){const o=(0,n.struct)([(0,n.seq)(e,t,"values")]);return new d(o,(({values:e})=>e),(e=>({values:e})),r)};class y extends n.Layout{constructor(e,t,r){super(e.span+t.span,r),this.keyLayout=e,this.valueLayout=t}decode(e,t){return t=t||0,[this.keyLayout.decode(e,t),this.valueLayout.decode(e,t+this.keyLayout.getSpan(e,t))]}encode(e,t,r){r=r||0;const o=this.keyLayout.encode(e[0],t,r);return o+this.valueLayout.encode(e[1],t,r+o)}getSpan(e,t){return this.keyLayout.getSpan(e,t)+this.valueLayout.getSpan(e,t)}}t.map=function(e,t,r){const o=(0,n.u32)("length"),s=(0,n.struct)([o,(0,n.seq)(new y(e,t),(0,n.offset)(o,-o.span),"values")]);return new d(s,(({values:e})=>new Map(e)),(e=>({values:Array.from(e.entries())})),r)}}(n),exports.TreeType=void 0,(F=exports.TreeType||(exports.TreeType={}))[F.StateV1=1]="StateV1",F[F.AddressV1=2]="AddressV1",F[F.StateV2=3]="StateV2",F[F.AddressV2=4]="AddressV2",exports.VERSION=void 0,(K=exports.VERSION||(exports.VERSION={})).V1="V1",K.V2="V2";let $=1;const j={version:'"V2"',isV2:()=>"V2"===j.version.replace(/['"]/g,"").toUpperCase(),isBeta:()=>{var e;if($)return 1;if("undefined"!=typeof process&&(null===(e=process.env)||void 0===e?void 0:e.LIGHT_PROTOCOL_BETA)){const e=process.env.LIGHT_PROTOCOL_BETA.toLowerCase();return"true"===e||"1"===e}return 0},enableBeta:()=>{$=1},disableBeta:()=>{$=0}},z="Interface methods require beta feature flag. These features are not yet deployed on mainnet (only localnet/devnet). Set LIGHT_PROTOCOL_BETA=true to enable.";function Z(){if(!j.isV2())throw new Error("Interface methods require V2. Set LIGHT_PROTOCOL_VERSION=V2.");if(!j.isBeta())throw new Error(z)}const G=e=>j.isV2()?`${e}V2`:e,Q=new W("21888242871839275222246405745257275088548364400416034343698204186575808495617"),J=new W("452312848583266388373324160190187140051835877600158453279131187530910662655"),X=[2,64,66,15,0],Y=t.Buffer.from([26,16,169,7,21,202,242,25]),ee=t.Buffer.from([49,212,191,129,39,194,43,196]),te=t.Buffer.from([86,47,163,166,21,223,92,8]),re=t.Buffer.from([228,34,128,84,47,139,86,240]),oe=t.Buffer.from([180,143,159,153,35,46,248,163]),ne="noopb9bkMVfRPU8AsbpTUg8AQkHtKwMYZiFUjNRtMmV",se="SySTEM1eSU2p4BGQfQpimFEWWSC1XDFeun3Nqzz3rT7",ie="compr6CUsB5m2jS4Y3831ztGSTnDpnKJTKS95d64XVq",ae=()=>new e.PublicKey("35hkDgaAKwMCaxRz2ocSZ6NaUrtKkyNqU6c4RV3tYJRh"),ue=()=>e.PublicKey.findProgramAddressSync([t.Buffer.from("cpi_authority")],new e.PublicKey(se))[0],ce=()=>({registeredProgramPda:new e.PublicKey(ae()),noopProgram:new e.PublicKey(ne),accountCompressionProgram:new e.PublicKey(ie),accountCompressionAuthority:new e.PublicKey(ue()),cpiSignatureAccount:null}),le=()=>({mainnet:[{stateTreeLookupTable:new e.PublicKey(we),nullifyLookupTable:new e.PublicKey(ve)}],devnet:[{stateTreeLookupTable:new e.PublicKey(xe),nullifyLookupTable:new e.PublicKey(be)}]}),de=e=>e.includes("localhost")||e.includes("127.0.0.1"),he=()=>me(),pe=()=>j.isV2()?me():{tree:new e.PublicKey(Te),queue:new e.PublicKey(Me),cpiContext:void 0,treeType:exports.TreeType.AddressV1,nextTreeInfo:null},me=()=>({tree:new e.PublicKey($e),queue:new e.PublicKey($e),cpiContext:void 0,treeType:exports.TreeType.AddressV2,nextTreeInfo:null}),fe=()=>({nullifierQueue:new e.PublicKey(Ie),merkleTree:new e.PublicKey(Ae),merkleTreeHeight:Ge,addressTree:new e.PublicKey(Te),addressQueue:new e.PublicKey(Me)}),ye=new e.PublicKey("cTokenmWW8bLPjZEBAUgYy3zKxQZW6VKi7bqNFEVv3m"),ge=ye,we="7i86eQs3GSqHjN47WdWLTCGMW6gde1q96G2EVnUyK2st",ve="H9QD4u1fG7KmkAzn2tDXhheushxFe1EcrjGGyEFXeMqT",xe="Dk9mNkbiZXJZ4By8DfSP6HEE4ojZzRvucwpawLeuwq8q",be="AXbHzp1NgjLvpfnD6JRTTovXZ7APUCdtWZFCRr5tCxse",Ie="nfq1NvQDJ2GEgnS8zt9prAe8rjjpAW1zFkrvZoBR148",Ee="cpi1uHzrEhBG733DoEJNgHCyRS3XmmyVNZx5fonubE4",Ae="smt1NamzXdq4AMqS2fS2F1i5KTYPZRhoHgWx38d8WsT",Te="amt1Ayt45jfbdw5YSo7iz6WZxUmnZsQTYXy82hVwyC2",Me="aq1S9z4reTSQAdgWHGD2zDaS39sjGrAxbR31vxJ2F4F",Se="smt2rJAFdyJJupwMKAqTNAJwvjhmiZ4JYGZmbVRw1Ho",Ce="nfq2hgS7NYemXsFaFUCe3EMXSDSfnZnAe27jC6aPP1X",ke="cpi2cdhkH5roePvcudTgUL8ppEBfTay1desGh8G8QxK",_e="bmt1LryLZUMmF7ZtqESaw7wifBXLfXHQYoE4GAmrahU",Pe="oq1na8gojfdUhsfCpyjNt6h4JaDWtHf1yQj4koBWfto",Oe="cpi15BoVPKgEPw5o8wc2T816GE7b378nMXnhH3Xbq4y",Le="bmt2UxoBxB9xWev4BkLvkGdapsz6sZGkzViPNph7VFi",Be="oq2UkeMsJLfXt2QHzim242SUi3nvjJs8Pn7Eac9H9vg",Ne="cpi2yGapXUR3As5SjnHBAVvmApNiLsbeZpF3euWnW6B",Re="bmt3ccLd4bqSVZVeCJnH1F6C8jNygAhaDfxDwePyyGb",De="oq3AxjekBWgo64gpauB6QtuZNesuv19xrhaC1ZM1THQ",Ve="cpi3mbwMpSX8FAGMZVP85AwxqCaQMfEk9Em1v8QK9Rf",Ue="bmt4d3p1a4YQgk9PeZv5s4DBUmbF5NxqYpk9HGjQsd8",qe="oq4ypwvVGzCUMoiKKHWh4S1SgZJ9vCvKpcz6RT6A8dq",Fe="cpi4yyPDc4bCgHAnsenunGA8Y77j3XEDyjgfyCKgcoc",Ke="bmt5yU97jC88YXTuSukYHa8Z5Bi2ZDUtmzfkDTA2mG2",He="oq5oh5ZR3yGomuQgFduNDzjtGvVWfDRGLuDVjv9a96P",We="cpi5ZTjdgYpZ1Xr7B1cMLLUE81oTtJbNNAyKary2nV6",$e="amt2kaJA14v3urZbZvnc5v2np8jqvc4Z8zDep5wbtzx",je=_e,ze=Pe,Ze=()=>{const t=[[_e,Pe,Oe],[Le,Be,Ne],[Re,De,Ve],[Ue,qe,Fe],[Ke,He,We]],r=$e,o=[[Ae,Ie,Ee],[Se,Ce,ke]].map((([t,r,o])=>({tree:new e.PublicKey(t),queue:new e.PublicKey(r),cpiContext:new e.PublicKey(o),treeType:exports.TreeType.StateV1,nextTreeInfo:null}))),n=t.map((([t,r,o])=>({tree:new e.PublicKey(t),queue:new e.PublicKey(r),cpiContext:new e.PublicKey(o),treeType:exports.TreeType.StateV2,nextTreeInfo:null}))),s={tree:new e.PublicKey(r),queue:new e.PublicKey(r),cpiContext:e.PublicKey.default,treeType:exports.TreeType.AddressV2,nextTreeInfo:null};return j.isV2()?[...o,...n,s]:o},Ge=26,Qe=new W(Math.floor(2**Ge*.95)),Je=j.isV2()?new W(1):new W(300),Xe=(j.isV2(),new W(392)),Ye=new W(5e3),et=new W(5e3),tt=new W(1e4);var rt=function(e){const t=new Uint8Array(256);for(let e=0;e<t.length;e++)t[e]=255;for(let r=0;r<58;r++){const o=e.charAt(r),n=o.charCodeAt(0);if(255!==t[n])throw new TypeError(o+" is ambiguous");t[n]=r}const r=e.charAt(0),o=Math.log(58)/Math.log(256),n=Math.log(256)/Math.log(58);function s(e){if("string"!=typeof e)throw new TypeError("Expected String");if(0===e.length)return new Uint8Array;let n=0,s=0,i=0;for(;e[n]===r;)s++,n++;const a=(e.length-n)*o+1>>>0,u=new Uint8Array(a);for(;e[n];){let r=t[e.charCodeAt(n)];if(255===r)return;let o=0;for(let e=a-1;(0!==r||o<i)&&-1!==e;e--,o++)r+=58*u[e]>>>0,u[e]=r%256>>>0,r=r/256>>>0;if(0!==r)throw new Error("Non-zero carry");i=o,n++}let c=a-i;for(;c!==a&&0===u[c];)c++;const l=new Uint8Array(s+(a-c));let d=s;for(;c!==a;)l[d++]=u[c++];return l}return{encode:function(t){if(t instanceof Uint8Array||(ArrayBuffer.isView(t)?t=new Uint8Array(t.buffer,t.byteOffset,t.byteLength):Array.isArray(t)&&(t=Uint8Array.from(t))),!(t instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(0===t.length)return"";let o=0,s=0,i=0;const a=t.length;for(;i!==a&&0===t[i];)i++,o++;const u=(a-i)*n+1>>>0,c=new Uint8Array(u);for(;i!==a;){let e=t[i],r=0;for(let t=u-1;(0!==e||r<s)&&-1!==t;t--,r++)e+=256*c[t]>>>0,c[t]=e%58>>>0,e=e/58>>>0;if(0!==e)throw new Error("Non-zero carry");s=r,i++}let l=u-s;for(;l!==u&&0===c[l];)l++;let d=r.repeat(o);for(;l<u;++l)d+=e.charAt(c[l]);return d},decodeUnsafe:s,decode:function(e){const t=s(e);if(t)return t;throw new Error("Non-base58 character")}}}("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz");const ot=(e,t)=>{if("base58"===t){if("string"!=typeof e)throw new Error("Must be a base58 string");return ot(rt.decode(e))}return function(e){if(e.gte(Q))throw new Error("Value is too large. Max <254 bits");return e}(new W(e,t))};function nt(e){const r=ot(e).toArrayLike(t.Buffer,void 0,32);return rt.encode(new Uint8Array(r))}const st=(e,r,o)=>e instanceof Uint8Array&&!(e instanceof t.Buffer)?new W(t.Buffer.from(e),r,o):new W(e,r,o),it=(e,t,r,o)=>({owner:e,lamports:null!=t?t:new W(0),address:null!=o?o:null,data:null!=r?r:null}),at=(e,t,r,o,n)=>Object.assign(Object.assign({},e),{owner:t,lamports:null!=r?r:new W(0),address:null!=n?n:null,data:null!=o?o:null,readOnly:0}),ut=(e,t,r,o=0)=>({treeInfo:e,hash:t,leafIndex:r,proveByIndex:o}),ct=n.struct([n.publicKey("owner"),n.u64("lamports"),n.option(n.array(n.u8(),32),"address"),n.option(n.struct([n.array(n.u8(),8,"discriminator"),n.vecU8("data"),n.array(n.u8(),32,"dataHash")]),"data")],"compressedAccount"),lt=n.struct([n.u8("merkleTreePubkeyIndex"),n.u8("queuePubkeyIndex"),n.u32("leafIndex"),n.bool("proveByIndex")],"merkleContext"),dt=n.struct([n.array(n.u8(),32,"seed"),n.u8("addressQueueAccountIndex"),n.u8("addressMerkleTreeAccountIndex"),n.u16("addressMerkleTreeRootIndex")],"newAddressParams"),ht=n.struct([n.option(n.struct([n.array(n.u8(),32,"a"),n.array(n.u8(),64,"b"),n.array(n.u8(),32,"c")]),"proof"),n.vec(n.struct([ct,lt,n.u16("rootIndex"),n.bool("readOnly")]),"inputCompressedAccountsWithMerkleContext"),n.vec(n.struct([ct,n.u8("merkleTreeIndex")]),"outputCompressedAccounts"),n.option(n.u64(),"relayFee"),n.vec(dt,"newAddressParams"),n.option(n.u64(),"compressOrDecompressLamports"),n.bool("isCompress")]);function pt(e){const r=t.Buffer.alloc(1e3),o=ht.encode(e,r),n=t.Buffer.from(new Uint8Array(r.slice(0,o))),s=t.Buffer.alloc(4);return s.writeUInt32LE(o,0),t.Buffer.concat([new Uint8Array(Y),new Uint8Array(s),new Uint8Array(n)])}const mt=n.struct([n.option(n.struct([n.array(n.u8(),32,"a"),n.array(n.u8(),64,"b"),n.array(n.u8(),32,"c")]),"proof"),n.vec(dt,"newAddressParams"),n.vec(n.struct([ct,lt,n.u16("rootIndex"),n.bool("readOnly")]),"inputCompressedAccountsWithMerkleContext"),n.vec(n.struct([ct,n.u8("merkleTreeIndex")]),"outputCompressedAccounts"),n.option(n.u64(),"relayFee"),n.option(n.u64(),"compressOrDecompressLamports"),n.bool("isCompress"),n.option(n.struct([n.bool("set_context"),n.bool("first_set_context"),n.u8("cpi_context_account_index")]),"compressedCpiContext")]),ft=n.struct([n.array(n.u8(),32,"a"),n.array(n.u8(),64,"b"),n.array(n.u8(),32,"c")],"compressedProof"),yt=n.struct([n.bool("set_context"),n.bool("first_set_context"),n.u8("cpi_context_account_index")],"compressedCpiContext"),gt=n.struct([n.array(n.u8(),32,"seed"),n.u8("address_queue_account_index"),n.u8("address_merkle_tree_account_index"),n.u16("address_merkle_tree_root_index"),n.bool("assigned_to_account"),n.u8("assigned_account_index")],"newAddressParamsAssignedPacked"),wt=n.struct([n.u8("merkle_tree_pubkey_index"),n.u8("queue_pubkey_index"),n.u32("leaf_index"),n.bool("prove_by_index")],"packedMerkleContext"),vt=n.struct([n.array(n.u8(),8,"discriminator"),n.array(n.u8(),32,"data_hash"),wt,n.u16("root_index"),n.u64("lamports"),n.option(n.array(n.u8(),32),"address")],"inAccount"),xt=n.struct([n.array(n.u8(),32,"address"),n.u16("address_merkle_tree_root_index"),n.u8("address_merkle_tree_account_index")],"packedReadOnlyAddress"),bt=n.struct([n.array(n.u8(),32,"account_hash"),wt,n.u16("root_index")],"packedReadOnlyCompressedAccount"),It=n.struct([n.u8("mode"),n.u8("bump"),n.publicKey("invoking_program_id"),n.u64("compress_or_decompress_lamports"),n.bool("is_compress"),n.bool("with_cpi_context"),n.bool("with_transaction_hash"),yt,n.option(ft,"proof"),n.vec(gt,"new_address_params"),n.vec(vt,"input_compressed_accounts"),n.vec(n.struct([ct,n.u8("merkleTreeIndex")]),"output_compressed_accounts"),n.vec(xt,"read_only_addresses"),n.vec(bt,"read_only_accounts")]);function Et(e){return It.decode(e.slice(te.length))}function At(e){return ht.decode(e.slice(Y.length+4))}function Tt(e){return mt.decode(e.slice(ee.length+4))}const Mt=e=>{const t=fo.programId,{feePayer:r,authority:o,registeredProgramPda:n,noopProgram:s,accountCompressionAuthority:i,accountCompressionProgram:a,solPoolPda:u,decompressionRecipient:c,systemProgram:l}=e;return[{pubkey:r,isSigner:1,isWritable:1},{pubkey:o,isSigner:1,isWritable:0},{pubkey:n,isSigner:0,isWritable:0},{pubkey:s,isSigner:0,isWritable:0},{pubkey:i,isSigner:0,isWritable:0},{pubkey:a,isSigner:0,isWritable:0},{pubkey:null!=u?u:t,isSigner:0,isWritable:null!==u},{pubkey:null!=c?c:t,isSigner:0,isWritable:1},{pubkey:l,isSigner:0,isWritable:0}]},St=n.struct([n.vec(n.array(n.u8(),32),"inputCompressedAccountHashes"),n.vec(n.array(n.u8(),32),"outputCompressedAccountHashes"),n.vec(n.struct([n.struct([n.publicKey("owner"),n.u64("lamports"),n.option(n.array(n.u8(),32),"address"),n.option(n.struct([n.array(n.u8(),8,"discriminator"),n.vecU8("data"),n.array(n.u8(),32,"dataHash")]),"data")],"compressedAccount"),n.u8("merkleTreeIndex")]),"outputCompressedAccounts"),n.vec(n.u32(),"outputLeafIndices"),n.vec(n.struct([n.publicKey("tree_pubkey"),n.publicKey("queue_pubkey"),n.u64("tree_type"),n.u64("seq")]),"sequenceNumbers"),n.option(n.u64(),"relayFee"),n.bool("isCompress"),n.option(n.u64(),"compressOrDecompressLamports"),n.vec(n.publicKey(),"pubkeyArray"),n.option(n.vecU8(),"message")]);function Ct(e){return St.decode(e)}const kt=n.struct([n.u8("is_invoked_by_program"),n.u8("bump"),n.u8("num_queues"),n.u8("num_output_queues"),n.u8("start_output_appends"),n.u8("num_address_queues"),n.array(n.u8(),32,"tx_hash")],"appendNullifyCreateAddressInputsMeta"),_t=n.struct([n.u8("index"),n.array(n.u8(),32,"leaf")],"appendLeavesInput"),Pt=n.struct([n.array(n.u8(),32,"account_hash"),n.u32("leaf_index"),n.u8("prove_by_index"),n.u8("tree_index"),n.u8("queue_index")],"insertNullifierInput"),Ot=n.struct([n.array(n.u8(),32,"address"),n.u8("tree_index"),n.u8("queue_index")],"insertAddressInput"),Lt=n.struct([n.publicKey("tree_pubkey"),n.publicKey("queue_pubkey"),n.u64("tree_type"),n.u64("seq")],"merkleTreeSequenceNumber");function Bt(e){let t=0;const r=kt.decode(e,t);t+=kt.span;const o=e.readUInt8(t);t+=1;const s=[];for(let r=0;r<o;r++){const r=_t.decode(e,t);s.push(r),t+=_t.span}const i=e.readUInt8(t);t+=1;const a=[];for(let r=0;r<i;r++){const r=Pt.decode(e,t);a.push(r),t+=Pt.span}const u=e.readUInt8(t);t+=1;const c=[];for(let r=0;r<u;r++){const r=Ot.decode(e,t);c.push(r),t+=Ot.span}const l=e.readUInt8(t);t+=1;const d=[];for(let r=0;r<l;r++){const r=Lt.decode(e,t);d.push(r),t+=Lt.span}const h=e.readUInt8(t);t+=1;for(let r=0;r<h;r++)Lt.decode(e,t),t+=Lt.span;const p=e.readUInt8(t);t+=1;for(let r=0;r<p;r++)Lt.decode(e,t),t+=Lt.span;const m=e.readUInt8(t);t+=1;const f=[];for(let r=0;r<m;r++){const r=n.u32().decode(e,t);f.push(r),t+=4}return{meta:r,leaves:s,nullifiers:a,addresses:c,sequence_numbers:d,output_leaf_indices:f}}function Nt(r,o,n){const s=e=>Array.from(e instanceof t.Buffer?new Uint8Array(e):e);return{inputCompressedAccountHashes:r.nullifiers.map((e=>s(e.account_hash))),outputCompressedAccountHashes:r.leaves.map((e=>s(e.leaf))),outputCompressedAccounts:r.leaves.map(((r,o)=>{var i,a,u,c,l,d;return{compressedAccount:{owner:new e.PublicKey((null===(i=null==n?void 0:n.outputCompressedAccounts[o])||void 0===i?void 0:i.compressedAccount.owner)||e.PublicKey.default),lamports:st((null===(a=null==n?void 0:n.outputCompressedAccounts[o])||void 0===a?void 0:a.compressedAccount.lamports)||0),address:null==n?void 0:n.outputCompressedAccounts[o].compressedAccount.address,data:(null===(u=null==n?void 0:n.outputCompressedAccounts[o])||void 0===u?void 0:u.compressedAccount.data)?{discriminator:s(t.Buffer.from(null===(c=n.outputCompressedAccounts[o].compressedAccount.data)||void 0===c?void 0:c.discriminator)),data:null!==(l=s(t.Buffer.from(new Uint8Array(n.outputCompressedAccounts[o].compressedAccount.data.data))))&&void 0!==l?l:[],dataHash:s(t.Buffer.from(null===(d=n.outputCompressedAccounts[o].compressedAccount.data)||void 0===d?void 0:d.dataHash))}:null},merkleTreeIndex:r.index}})),outputLeafIndices:r.output_leaf_indices,sequenceNumbers:r.sequence_numbers.map((e=>({tree_pubkey:e.tree_pubkey,queue_pubkey:e.queue_pubkey,tree_type:e.tree_type,seq:e.seq}))),pubkeyArray:o.slice(2).filter((t=>!t.equals(e.PublicKey.default))),isCompress:(null==n?void 0:n.isCompress)||0,relayFee:(null==n?void 0:n.relayFee)?st(n.relayFee):null,compressOrDecompressLamports:(null==n?void 0:n.compressOrDecompressLamports)?st(n.compressOrDecompressLamports):null,message:null}}function Rt(e,t){const r=e.findIndex((e=>e.equals(t)));return-1===r?(e.push(t),e.length-1):r}function Dt(e,t){return t<=0?[]:new Array(t).fill(e)}function Vt(e){return e.map((e=>({pubkey:e,isWritable:1,isSigner:0})))}function Ut(e,t,r,o,n=[]){const s=n.slice(),i=[],a=[];if(e.forEach(((e,r)=>{const o=Rt(s,e.treeInfo.tree),n=Rt(s,e.treeInfo.queue);i.push({compressedAccount:{owner:e.owner,lamports:e.lamports,address:e.address,data:e.data},merkleContext:{merkleTreePubkeyIndex:o,queuePubkeyIndex:n,leafIndex:e.leafIndex,proveByIndex:e.proveByIndex},rootIndex:t[r],readOnly:0})})),e.length>0&&o)throw new Error("Cannot specify both input accounts and outputStateTreeInfo");let u;if(e.length>0)u=e[0].treeInfo;else{if(!o)throw new Error("Neither input accounts nor outputStateTreeInfo are available");u=o}const c=u.nextTreeInfo||u;let l=c.tree;if(c.treeType===exports.TreeType.StateV2){if(!j.isV2())throw new Error("V2 trees are not supported yet");l=c.queue}const d=Dt(l,r.length);return r.forEach(((e,t)=>{const r=Rt(s,d[t]);a.push({compressedAccount:{owner:e.owner,lamports:e.lamports,address:e.address,data:e.data},merkleTreeIndex:r})})),{packedInputCompressedAccounts:i,packedOutputCompressedAccounts:a,remainingAccounts:s}}const qt=e=>{if(e.lt(st(0)))throw new Error("Insufficient balance for transfer")},Ft=e=>{if(0===e.length)throw new Error("No accounts provided for validation");const t=e[0].owner;if(!e.every((e=>e.owner.equals(t))))throw new Error("All input accounts must have the same owner")},Kt=(e,t)=>{if(e>0&&t>0){if(8===e)throw new Error(`Invalid number of compressed accounts for proof: ${e}. Allowed numbers: ${[1,2,3,4].join(", ")}`);$t(e,[1,2,3,4],"compressed accounts"),Wt(t)}else e>0?Ht(e):Wt(t)},Ht=e=>{$t(e,[1,2,3,4,8],"compressed accounts")},Wt=e=>{$t(e,[1,2],"new addresses")},$t=(e,t,r)=>{if(!t.includes(e))throw new Error(`Invalid number of ${r}: ${e}. Allowed numbers: ${t.join(", ")}`)};function jt(e){if(!Number.isSafeInteger(e)||e<0)throw new Error(`positive integer expected, not ${e}`)}function zt(e,...t){if(!((r=e)instanceof Uint8Array||null!=r&&"object"==typeof r&&"Uint8Array"===r.constructor.name))throw new Error("Uint8Array expected");var r;if(t.length>0&&!t.includes(e.length))throw new Error(`Uint8Array expected of length ${t}, not of length=${e.length}`)}function Zt(e,t=1){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}const Gt=BigInt(2**32-1),Qt=BigInt(32);function Jt(e,t=0){return t?{h:Number(e&Gt),l:Number(e>>Qt&Gt)}:{h:0|Number(e>>Qt&Gt),l:0|Number(e&Gt)}}function Xt(e,t=0){let r=new Uint32Array(e.length),o=new Uint32Array(e.length);for(let n=0;n<e.length;n++){const{h:s,l:i}=Jt(e[n],t);[r[n],o[n]]=[s,i]}return[r,o]}const Yt=68===new Uint8Array(new Uint32Array([287454020]).buffer)[0];function er(e){for(let r=0;r<e.length;r++)e[r]=(t=e[r])<<24&4278190080|t<<8&16711680|t>>>8&65280|t>>>24&255;var t}function tr(e){return"string"==typeof e&&(e=function(e){if("string"!=typeof e)throw new Error("utf8ToBytes expected string, got "+typeof e);return new Uint8Array((new TextEncoder).encode(e))}(e)),zt(e),e}class rr{clone(){return this._cloneInto()}}const or=[],nr=[],sr=[],ir=BigInt(0),ar=BigInt(1),ur=BigInt(2),cr=BigInt(7),lr=BigInt(256),dr=BigInt(113);for(let e=0,t=ar,r=1,o=0;e<24;e++){[r,o]=[o,(2*r+3*o)%5],or.push(2*(5*o+r)),nr.push((e+1)*(e+2)/2%64);let n=ir;for(let e=0;e<7;e++)t=(t<<ar^(t>>cr)*dr)%lr,t&ur&&(n^=ar<<(ar<<BigInt(e))-ar);sr.push(n)}const[hr,pr]=Xt(sr,1),mr=(e,t,r)=>r>32?((e,t,r)=>t<<r-32|e>>>64-r)(e,t,r):((e,t,r)=>e<<r|t>>>32-r)(e,t,r),fr=(e,t,r)=>r>32?((e,t,r)=>e<<r-32|t>>>64-r)(e,t,r):((e,t,r)=>t<<r|e>>>32-r)(e,t,r);class yr extends rr{constructor(e,t,r,o=0,n=24){if(super(),this.blockLen=e,this.suffix=t,this.outputLen=r,this.enableXOF=o,this.rounds=n,this.pos=0,this.posOut=0,this.finished=0,this.destroyed=0,jt(r),0>=this.blockLen||this.blockLen>=200)throw new Error("Sha3 supports only keccak-f1600 function");var s;this.state=new Uint8Array(200),this.state32=(s=this.state,new Uint32Array(s.buffer,s.byteOffset,Math.floor(s.byteLength/4)))}keccak(){Yt||er(this.state32),function(e,t=24){const r=new Uint32Array(10);for(let o=24-t;o<24;o++){for(let t=0;t<10;t++)r[t]=e[t]^e[t+10]^e[t+20]^e[t+30]^e[t+40];for(let t=0;t<10;t+=2){const o=(t+8)%10,n=(t+2)%10,s=r[n],i=r[n+1],a=mr(s,i,1)^r[o],u=fr(s,i,1)^r[o+1];for(let r=0;r<50;r+=10)e[t+r]^=a,e[t+r+1]^=u}let t=e[2],n=e[3];for(let r=0;r<24;r++){const o=nr[r],s=mr(t,n,o),i=fr(t,n,o),a=or[r];t=e[a],n=e[a+1],e[a]=s,e[a+1]=i}for(let t=0;t<50;t+=10){for(let o=0;o<10;o++)r[o]=e[t+o];for(let o=0;o<10;o++)e[t+o]^=~r[(o+2)%10]&r[(o+4)%10]}e[0]^=hr[o],e[1]^=pr[o]}r.fill(0)}(this.state32,this.rounds),Yt||er(this.state32),this.posOut=0,this.pos=0}update(e){Zt(this);const{blockLen:t,state:r}=this,o=(e=tr(e)).length;for(let n=0;n<o;){const s=Math.min(t-this.pos,o-n);for(let t=0;t<s;t++)r[this.pos++]^=e[n++];this.pos===t&&this.keccak()}return this}finish(){if(this.finished)return;this.finished=1;const{state:e,suffix:t,pos:r,blockLen:o}=this;e[r]^=t,0!=(128&t)&&r===o-1&&this.keccak(),e[o-1]^=128,this.keccak()}writeInto(e){Zt(this,0),zt(e),this.finish();const t=this.state,{blockLen:r}=this;for(let o=0,n=e.length;o<n;){this.posOut>=r&&this.keccak();const s=Math.min(r-this.posOut,n-o);e.set(t.subarray(this.posOut,this.posOut+s),o),this.posOut+=s,o+=s}return e}xofInto(e){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(e)}xof(e){return jt(e),this.xofInto(new Uint8Array(e))}digestInto(e){if(function(e,t){zt(e);const r=t.outputLen;if(e.length<r)throw new Error(`digestInto() expects output buffer of length at least ${r}`)}(e,this),this.finished)throw new Error("digest() was already called");return this.writeInto(e),this.destroy(),e}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=1,this.state.fill(0)}_cloneInto(e){const{blockLen:t,suffix:r,outputLen:o,rounds:n,enableXOF:s}=this;return e||(e=new yr(t,r,o,s,n)),e.state32.set(this.state32),e.pos=this.pos,e.posOut=this.posOut,e.finished=this.finished,e.rounds=n,e.suffix=r,e.outputLen=o,e.enableXOF=s,e.destroyed=this.destroyed,e}}const gr=(()=>function(e){const t=t=>e().update(tr(t)).digest(),r=e();return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=()=>e(),t}((()=>new yr(136,1,32))))(),wr=e=>"object"==typeof e&&null!==e,vr=e=>wr(e)&&!(e instanceof RegExp)&&!(e instanceof Error)&&!(e instanceof Date),xr=Symbol("mapObjectSkip"),br=(e,t,r,o=new WeakMap)=>{if(r={deep:0,target:{},...r},o.has(e))return o.get(e);o.set(e,r.target);const{target:n}=r;delete r.target;const s=e=>e.map((e=>vr(e)?br(e,t,r,o):e));if(Array.isArray(e))return s(e);for(const[i,a]of Object.entries(e)){const u=t(i,a,e);if(u===xr)continue;let[c,l,{shouldRecurse:d=1}={}]=u;"__proto__"!==c&&(r.deep&&d&&vr(l)&&(l=Array.isArray(l)?s(l):br(l,t,r,o)),n[c]=l)}return n};function Ir(e,t,r){if(!wr(e))throw new TypeError(`Expected an object, got \`${e}\` (${typeof e})`);return br(e,t,r)}const Er=/[\p{Lu}]/u,Ar=/[\p{Ll}]/u,Tr=/^[\p{Lu}](?![\p{Lu}])/gu,Mr=/([\p{Alpha}\p{N}_]|$)/u,Sr=/[_.\- ]+/,Cr=new RegExp("^"+Sr.source),kr=new RegExp(Sr.source+Mr.source,"gu"),_r=new RegExp("\\d+"+Mr.source,"gu");class Pr extends Map{constructor(e={}){if(super(),!(e.maxSize&&e.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");if("number"==typeof e.maxAge&&0===e.maxAge)throw new TypeError("`maxAge` must be a number greater than 0");this.maxSize=e.maxSize,this.maxAge=e.maxAge||Number.POSITIVE_INFINITY,this.onEviction=e.onEviction,this.cache=new Map,this.oldCache=new Map,this._size=0}_emitEvictions(e){if("function"==typeof this.onEviction)for(const[t,r]of e)this.onEviction(t,r.value)}_deleteIfExpired(e,t){return"number"==typeof t.expiry&&t.expiry<=Date.now()?("function"==typeof this.onEviction&&this.onEviction(e,t.value),this.delete(e)):0}_getOrDeleteIfExpired(e,t){if(0==this._deleteIfExpired(e,t))return t.value}_getItemValue(e,t){return t.expiry?this._getOrDeleteIfExpired(e,t):t.value}_peek(e,t){const r=t.get(e);return this._getItemValue(e,r)}_set(e,t){this.cache.set(e,t),this._size++,this._size>=this.maxSize&&(this._size=0,this._emitEvictions(this.oldCache),this.oldCache=this.cache,this.cache=new Map)}_moveToRecent(e,t){this.oldCache.delete(e),this._set(e,t)}*_entriesAscending(){for(const e of this.oldCache){const[t,r]=e;this.cache.has(t)||0==this._deleteIfExpired(t,r)&&(yield e)}for(const e of this.cache){const[t,r]=e;0==this._deleteIfExpired(t,r)&&(yield e)}}get(e){if(this.cache.has(e)){const t=this.cache.get(e);return this._getItemValue(e,t)}if(this.oldCache.has(e)){const t=this.oldCache.get(e);if(0==this._deleteIfExpired(e,t))return this._moveToRecent(e,t),t.value}}set(e,t,{maxAge:r=this.maxAge}={}){const o="number"==typeof r&&r!==Number.POSITIVE_INFINITY?Date.now()+r:void 0;return this.cache.has(e)?this.cache.set(e,{value:t,expiry:o}):this._set(e,{value:t,expiry:o}),this}has(e){return this.cache.has(e)?!this._deleteIfExpired(e,this.cache.get(e)):this.oldCache.has(e)?!this._deleteIfExpired(e,this.oldCache.get(e)):0}peek(e){return this.cache.has(e)?this._peek(e,this.cache):this.oldCache.has(e)?this._peek(e,this.oldCache):void 0}delete(e){const t=this.cache.delete(e);return t&&this._size--,this.oldCache.delete(e)||t}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}resize(e){if(!(e&&e>0))throw new TypeError("`maxSize` must be a number greater than 0");const t=[...this._entriesAscending()],r=t.length-e;r<0?(this.cache=new Map(t),this.oldCache=new Map,this._size=t.length):(r>0&&this._emitEvictions(t.slice(0,r)),this.oldCache=new Map(t.slice(r)),this.cache=new Map,this._size=0),this.maxSize=e}*keys(){for(const[e]of this)yield e}*values(){for(const[,e]of this)yield e}*[Symbol.iterator](){for(const e of this.cache){const[t,r]=e;0==this._deleteIfExpired(t,r)&&(yield[t,r.value])}for(const e of this.oldCache){const[t,r]=e;this.cache.has(t)||0==this._deleteIfExpired(t,r)&&(yield[t,r.value])}}*entriesDescending(){let e=[...this.cache];for(let t=e.length-1;t>=0;--t){const r=e[t],[o,n]=r;0==this._deleteIfExpired(o,n)&&(yield[o,n.value])}e=[...this.oldCache];for(let t=e.length-1;t>=0;--t){const r=e[t],[o,n]=r;this.cache.has(o)||0==this._deleteIfExpired(o,n)&&(yield[o,n.value])}}*entriesAscending(){for(const[e,t]of this._entriesAscending())yield[e,t.value]}get size(){if(!this._size)return this.oldCache.size;let e=0;for(const t of this.oldCache.keys())this.cache.has(t)||e++;return Math.min(this._size+e,this.maxSize)}entries(){return this.entriesAscending()}forEach(e,t=this){for(const[r,o]of this.entriesAscending())e.call(t,o,r,this)}get[Symbol.toStringTag](){return JSON.stringify([...this.entriesAscending()])}}const Or=new Pr({maxSize:1e5}),Lr=e=>!("object"!=typeof e||null===e||e instanceof RegExp||e instanceof Error||e instanceof Date),Br=(e,t={})=>{if(!Lr(e))return e;const{exclude:r,pascalCase:o=0,stopPaths:n,deep:s=0,preserveConsecutiveUppercase:i=0}=t,a=new Set(n),u=e=>(t,n)=>{if(s&&Lr(n)){const r=void 0===e?t:`${e}.${t}`;a.has(r)||(n=Ir(n,u(r)))}if(!r||!((e,t)=>e.some((e=>"string"==typeof e?e===t:(e.lastIndex=0,e.test(t)))))(r,t)){const e=o?`${t}_`:t;if(Or.has(e))t=Or.get(e);else{const r=function(e,t){if("string"!=typeof e&&!Array.isArray(e))throw new TypeError("Expected the input to be `string | string[]`");if(t={pascalCase:0,preserveConsecutiveUppercase:0,...t},0===(e=Array.isArray(e)?e.map((e=>e.trim())).filter((e=>e.length)).join("-"):e.trim()).length)return"";const r=0==t.locale?e=>e.toLowerCase():e=>e.toLocaleLowerCase(t.locale),o=0==t.locale?e=>e.toUpperCase():e=>e.toLocaleUpperCase(t.locale);return 1===e.length?Sr.test(e)?"":t.pascalCase?o(e):r(e):(e!==r(e)&&(e=((e,t,r,o)=>{let n=0,s=0,i=0,a=0;for(let u=0;u<e.length;u++){const c=e[u];a=u>2?"-"===e[u-3]:1,n&&Er.test(c)?(e=e.slice(0,u)+"-"+e.slice(u),n=0,i=s,s=1,u++):s&&i&&Ar.test(c)&&(!a||o)?(e=e.slice(0,u-1)+"-"+e.slice(u-1),i=s,s=0,n=1):(n=t(c)===c&&r(c)!==c,i=s,s=r(c)===c&&t(c)!==c)}return e})(e,r,o,t.preserveConsecutiveUppercase)),e=e.replace(Cr,""),e=t.preserveConsecutiveUppercase?((e,t)=>(Tr.lastIndex=0,e.replaceAll(Tr,(e=>t(e)))))(e,r):r(e),t.pascalCase&&(e=o(e.charAt(0))+e.slice(1)),((e,t)=>(kr.lastIndex=0,_r.lastIndex=0,e.replaceAll(_r,((r,o,n)=>["_","-"].includes(e.charAt(n+r.length))?r:t(r))).replaceAll(kr,((e,r)=>t(r)))))(e,o))}(t,{pascalCase:o,locale:0,preserveConsecutiveUppercase:i});t.length<100&&Or.set(e,r),t=r}}return[t,n]};return Ir(e,u(void 0))};function Nr(e){return"0x"+e.toString("hex")}function Rr(e){return st(e,void 0,"be").lt(Q)}const Dr=e=>{return t=e,r={deep:1},Array.isArray(t)?Object.keys(t).map((e=>Br(t[e],r))):Br(t,r);var t,r};function Vr(e){let r=255;for(;r>=0;){const o=t.Buffer.concat([e,t.Buffer.from([r])]),n=gr(o);if(32!==n.length)throw new Error("Invalid hash length");if(n[0]=0,Rr(t.Buffer.from(n)))return[t.Buffer.from(n),r];r-=1}return null}function Ur(e){const t=gr.create();for(const r of e)t.update(r);t.update(Uint8Array.from([255]));const r=t.digest();return r[0]=0,r}function qr(e){const t=gr.create();for(const r of e)t.update(r);const r=t.digest();return r[0]=0,r}function Fr(r){const o=r.proof?{a:r.proof.a,b:r.proof.b,c:r.proof.c}:null,n=r.new_address_params.map((e=>({seed:e.seed,addressMerkleTreeRootIndex:e.address_merkle_tree_root_index,addressMerkleTreeAccountIndex:e.address_merkle_tree_account_index,addressQueueAccountIndex:e.address_queue_account_index})));return{proof:o,inputCompressedAccountsWithMerkleContext:r.input_compressed_accounts.map((r=>({compressedAccount:{owner:new e.PublicKey(t.Buffer.alloc(32)),lamports:st(r.lamports),address:r.address,data:null},merkleContext:{merkleTreePubkeyIndex:r.packedMerkleContext.merkle_tree_pubkey_index,queuePubkeyIndex:r.packedMerkleContext.queue_pubkey_index,leafIndex:r.packedMerkleContext.leaf_index,proveByIndex:r.packedMerkleContext.prove_by_index},rootIndex:r.root_index,readOnly:0}))),outputCompressedAccounts:r.output_compressed_accounts.map((e=>({compressedAccount:{owner:e.compressedAccount.owner,lamports:e.compressedAccount.lamports,address:e.compressedAccount.address,data:e.compressedAccount.data},merkleTreeIndex:e.merkleTreeIndex}))),relayFee:null,newAddressParams:n,compressOrDecompressLamports:r.compress_or_decompress_lamports,isCompress:r.is_compress}}function Kr(e,t){return qr([t.toBytes(),...e])}function Hr(t,r=fe().addressTree){if(32!=t.length)throw new Error("Seed length is not 32 bytes.");const o=r.toBytes(),n=Vr(Buffer.from([...o,...t]));if(null===n)throw new Error("DeriveAddressError");const s=n[0];return new e.PublicKey(s)}function Wr(e){return Ur(e.map((e=>Uint8Array.from(e))))}function $r(t,r,o){if(32!=t.length)throw new Error("Address seed length is not 32 bytes.");const n=r.toBytes(),s=o.toBytes(),i=Ur([Uint8Array.from(t),Uint8Array.from(n),Uint8Array.from(s)]);return new e.PublicKey(i)}function jr(e,t){const r=t.slice(),o=e.map((e=>({seed:Array.from(e.seed),addressMerkleTreeRootIndex:e.addressMerkleTreeRootIndex,addressMerkleTreeAccountIndex:0,addressQueueAccountIndex:0})));return e.forEach(((e,t)=>{o[t].addressMerkleTreeAccountIndex=Rt(r,e.addressMerkleTreePubkey)})),e.forEach(((e,t)=>{o[t].addressQueueAccountIndex=Rt(r,e.addressQueuePubkey)})),{newAddressParamsPacked:o,remainingAccounts:r}}async function zr(e,t,r="confirmed"){const o=await e.getLatestBlockhash(r),n={signature:t.toString(),lastValidBlockHeight:o.lastValidBlockHeight,blockhash:o.blockhash};return await e.confirmTransaction(n,r)}function Zr(e,t){return t.includes(e)?t.filter((t=>t.publicKey.toString()!==e.publicKey.toString())):t}class Gr{constructor(){this.preAccounts=[],this.systemAccounts=[],this.nextIndex=0,this.map=new Map}static newWithSystemAccounts(e){const t=new Gr;return t.addSystemAccounts(e),t}static newWithSystemAccountsV2(e){const t=new Gr;return t.addSystemAccountsV2(e),t}addPreAccountsSigner(e){this.preAccounts.push({pubkey:e,isSigner:1,isWritable:0})}addPreAccountsSignerMut(e){this.preAccounts.push({pubkey:e,isSigner:1,isWritable:1})}addPreAccountsMeta(e){this.preAccounts.push(e)}addSystemAccounts(e){j.isV2()?this.systemAccounts.push(...Xr(e)):this.systemAccounts.push(...Jr(e))}addSystemAccountsV2(e){this.systemAccounts.push(...Xr(e))}insertOrGet(e){return this.insertOrGetConfig(e,0,1)}insertOrGetReadOnly(e){return this.insertOrGetConfig(e,0,0)}insertOrGetConfig(e,t,r){const o=this.map.get(e);if(o)return o[0];const n=this.nextIndex++,s={pubkey:e,isSigner:t,isWritable:r};return this.map.set(e,[n,s]),n}hashSetAccountsToMetas(){const e=Array.from(this.map.entries());return e.sort(((e,t)=>e[1][0]-t[1][0])),e.map((([,[,e]])=>e))}getOffsets(){const e=this.preAccounts.length;return[e,e+this.systemAccounts.length]}toAccountMetas(){const e=this.hashSetAccountsToMetas(),[t,r]=this.getOffsets();return{remainingAccounts:[...this.preAccounts,...this.systemAccounts,...e],systemStart:t,packedStart:r}}}class Qr{constructor(e,t,r,o){this.selfProgram=e,this.cpiContext=t,this.solCompressionRecipient=r,this.solPoolPda=o}static new(e){return new Qr(e)}static newWithCpiContext(e,t){return new Qr(e,t)}}function Jr(t){let r=(new TextEncoder).encode("cpi_authority");const o=e.PublicKey.findProgramAddressSync([r],t.selfProgram)[0],n=ce(),s=[{pubkey:fo.programId,isSigner:0,isWritable:0},{pubkey:o,isSigner:0,isWritable:0},{pubkey:n.registeredProgramPda,isSigner:0,isWritable:0},{pubkey:n.noopProgram,isSigner:0,isWritable:0},{pubkey:n.accountCompressionAuthority,isSigner:0,isWritable:0},{pubkey:n.accountCompressionProgram,isSigner:0,isWritable:0},{pubkey:t.selfProgram,isSigner:0,isWritable:0}];return t.solPoolPda&&s.push({pubkey:t.solPoolPda,isSigner:0,isWritable:1}),t.solCompressionRecipient&&s.push({pubkey:t.solCompressionRecipient,isSigner:0,isWritable:1}),s.push({pubkey:e.SystemProgram.programId,isSigner:0,isWritable:0}),t.cpiContext&&s.push({pubkey:t.cpiContext,isSigner:0,isWritable:1}),s}function Xr(t){let r=(new TextEncoder).encode("cpi_authority");const o=e.PublicKey.findProgramAddressSync([r],t.selfProgram)[0],n=ce(),s=[{pubkey:fo.programId,isSigner:0,isWritable:0},{pubkey:o,isSigner:0,isWritable:0},{pubkey:n.registeredProgramPda,isSigner:0,isWritable:0},{pubkey:n.accountCompressionAuthority,isSigner:0,isWritable:0},{pubkey:n.accountCompressionProgram,isSigner:0,isWritable:0},{pubkey:e.SystemProgram.programId,isSigner:0,isWritable:0}];return t.solPoolPda&&s.push({pubkey:t.solPoolPda,isSigner:0,isWritable:1}),t.solCompressionRecipient&&s.push({pubkey:t.solCompressionRecipient,isSigner:0,isWritable:1}),t.cpiContext&&s.push({pubkey:t.cpiContext,isSigner:0,isWritable:1}),s}function Yr(e){const t=to(e.ar[0]),r=to(e.ar[1]),o=new Uint8Array([...t,...r]),n=to(e.bs[0][0]),s=to(e.bs[0][1]),i=to(e.bs[1][0]),a=to(e.bs[1][1]),u=new Uint8Array([...n,...s,...i,...a]),c=to(e.krs[0]),l=to(e.krs[1]);return{a:o,b:u,c:new Uint8Array([...c,...l])}}function eo(e){const t=e.a,r=e.b,o=e.c,n=t.slice(0,32),s=ro(st(t.slice(32,64),32,"be"))?0:1;n[0]=oo(n[0],s);const i=r.slice(0,64),a=r.slice(64,128),u=function(e,t){const r=Q.div(st(2));return e.lt(r)?1:e.gt(r)?0:t.lt(r)}(st(a.slice(0,32),32,"be"),st(a.slice(32,64),32,"be"));i[0]=oo(i[0],u);const c=o.slice(0,32),l=o.slice(32,64),d=ro(st(l,32,"be"));return c[0]=oo(c[0],d),{a:Array.from(n),b:Array.from(i),c:Array.from(c)}}function to(e){const t=st(e.startsWith("0x")?e.substring(2):e,"hex");return new Uint8Array(t.toArray("be",32))}function ro(e){return e.lte(Q.sub(e))}function oo(e,t){return t?e:128|e}function no(t,r,o,n){const s=new e.TransactionMessage({payerKey:r,recentBlockhash:o,instructions:t}).compileToV0Message(n);return new e.VersionedTransaction(s)}async function so(e,t,r){const o=await e.sendTransaction(t,r);return await io(e,o,r),o}async function io(e,t,r){const o=(null==r?void 0:r.commitment)||e.commitment||"confirmed",n=de(e.rpcEndpoint)?200:1e3;let s=0;await new Promise(((r,i)=>{const a=setInterval((async()=>{var u;s+=n,s>=8e4&&(clearInterval(a),i(new Error(`Transaction ${t}'s confirmation timed out`)));const c=await e.getSignatureStatuses([t]);(null===(u=null==c?void 0:c.value[0])||void 0===u?void 0:u.confirmationStatus)===o&&(clearInterval(a),r(t))}),n)}));const i=await e.getSlot();return await e.confirmTransactionIndexed(i),{context:{slot:i},value:{err:null}}}function ao(e,t,r,o=[],n){if(o.includes(t))throw new Error("payer must not be in additionalSigners");const s=[t,...o],i=no(e,t.publicKey,r,n);return i.sign(s),i}function uo(e,t){return co(e,t)}function co(e,t){const r=e.find((e=>e.tree.equals(t)||e.queue.equals(t)));if(!r)throw new Error(`No associated TreeInfo found for tree or queue. Please set activeStateTreeInfos with latest Tree accounts. If you use custom state trees, set manually. Pubkey: ${t.toBase58()}`);if(!r.queue)throw new Error("Queue must not be null for state tree. Please set activeStateTreeInfos with latest Tree accounts. If you use custom state trees, set manually. Pubkey: "+t.toBase58());return r}function lo(e,t=(j.isV2()?exports.TreeType.StateV2:exports.TreeType.StateV1),r=0){const o=e.filter((e=>!e.nextTreeInfo)).filter((e=>e.treeType===t));if(0===o.length)throw new Error("No active state tree infos found for the specified tree type");const n=r?o.length:Math.min(5,o.length),s=Math.floor(Math.random()*n);if(!o[s].queue)throw new Error("Queue must not be null for state tree");return o[s]}async function ho({connection:t,stateTreeLUTPairs:r}){var o;const n=await Promise.all(r.map((async e=>({stateTreeLookupTable:await t.getAddressLookupTable(e.stateTreeLookupTable),nullifyLookupTable:await t.getAddressLookupTable(e.nullifyLookupTable)})))),s=[];for(const{stateTreeLookupTable:t,nullifyLookupTable:r}of n){if(!t.value)throw new Error("State tree lookup table not found");if(!r.value)throw new Error("Nullify table not found");const n=t.value.state.addresses,i=r.value.state.addresses;if(n.length%3!=0)throw new Error("State tree lookup table must have a multiple of 3 addresses");for(let t=0;t<n.length;t+=3){const r=n[t],o=n[t+1],a=n[t+2];let u=null;if(!r||!o||!a)throw new Error("Invalid state tree pubkeys structure");const c=r.toBase58();let l;l=c.startsWith("bmt")?exports.TreeType.StateV2:c.startsWith("amt2")?exports.TreeType.AddressV2:c.startsWith("amt")?exports.TreeType.AddressV1:exports.TreeType.StateV1,i.map((e=>e.toBase58())).includes(r.toBase58())&&(u={tree:e.PublicKey.default,queue:e.PublicKey.default,cpiContext:e.PublicKey.default,treeType:l,nextTreeInfo:null}),s.push({tree:r,queue:o,cpiContext:a,treeType:l,nextTreeInfo:u})}for(const t of s)if(null===(o=t.nextTreeInfo)||void 0===o?void 0:o.tree.equals(e.PublicKey.default)){const e=s.find((e=>!e.nextTreeInfo));if(!e)throw new Error("No available tree info found to assign as next tree");t.nextTreeInfo=e}}return s}const po=e=>e.reduce(((e,t)=>e.add(st(t.lamports))),st(0)),mo=t.Buffer.from("sol_pool_pda");class fo{constructor(){}static deriveCompressedSolPda(){const t=[mo],[r,o]=e.PublicKey.findProgramAddressSync(t,this.programId);return r}static createTransferOutputState(e,t,r){r=st(r);const o=po(e).sub(r);return qt(o),o.eq(st(0))?[it(t,r)]:(Ft(e),[it(e[0].owner,o),it(t,r)])}static createDecompressOutputState(e,t){t=st(t);const r=po(e).sub(t);return qt(r),r.eq(st(0))?[]:(Ft(e),[it(e[0].owner,r)])}static createNewAddressOutputState(e,t,r,o){r=st(null!=r?r:0);const n=po(null!=o?o:[]).sub(r);return qt(n),n.eq(st(0))||!o?[it(t,r,void 0,e)]:(Ft(o),[it(o[0].owner,n),it(t,r,void 0,e)])}static async createAccount({payer:t,newAddressParams:r,newAddress:o,recentValidityProof:n,outputStateTreeInfo:s,inputCompressedAccounts:i,inputStateRootIndices:a,lamports:u}){const c=this.createNewAddressOutputState(o,t,u,i),{packedInputCompressedAccounts:l,packedOutputCompressedAccounts:d,remainingAccounts:h}=Ut(null!=i?i:[],null!=a?a:[],c,i&&0!==i.length?void 0:s),{newAddressParamsPacked:p,remainingAccounts:m}=jr([r],h),f=pt({proof:n,inputCompressedAccountsWithMerkleContext:l,outputCompressedAccounts:d,relayFee:null,newAddressParams:p,compressOrDecompressLamports:null,isCompress:0}),y=[...Mt(Object.assign(Object.assign({},ce()),{feePayer:t,authority:t,solPoolPda:null,decompressionRecipient:null,systemProgram:e.SystemProgram.programId})),...Vt(m)];return new e.TransactionInstruction({programId:this.programId,keys:y,data:f})}static async transfer({payer:t,inputCompressedAccounts:r,toAddress:o,lamports:n,recentInputStateRootIndices:s,recentValidityProof:i}){const a=this.createTransferOutputState(r,o,n),{packedInputCompressedAccounts:u,packedOutputCompressedAccounts:c,remainingAccounts:l}=Ut(r,s,a),d=pt({proof:i,inputCompressedAccountsWithMerkleContext:u,outputCompressedAccounts:c,relayFee:null,newAddressParams:[],compressOrDecompressLamports:null,isCompress:0}),h=[...Mt(Object.assign(Object.assign({},ce()),{feePayer:t,authority:t,solPoolPda:null,decompressionRecipient:null,systemProgram:e.SystemProgram.programId})),...Vt(l)];return new e.TransactionInstruction({programId:this.programId,keys:h,data:d})}static async compress({payer:t,toAddress:r,lamports:o,outputStateTreeInfo:n}){o=st(o);const s=it(r,o),{packedInputCompressedAccounts:i,packedOutputCompressedAccounts:a,remainingAccounts:u}=Ut([],[],[s],n),c=pt({proof:null,inputCompressedAccountsWithMerkleContext:i,outputCompressedAccounts:a,relayFee:null,newAddressParams:[],compressOrDecompressLamports:o,isCompress:1}),l=[...Mt(Object.assign(Object.assign({},ce()),{feePayer:t,authority:t,solPoolPda:fo.deriveCompressedSolPda(),decompressionRecipient:null,systemProgram:e.SystemProgram.programId})),...Vt(u)];return new e.TransactionInstruction({programId:this.programId,keys:l,data:c})}static async decompress({payer:t,inputCompressedAccounts:r,toAddress:o,lamports:n,recentInputStateRootIndices:s,recentValidityProof:i}){n=st(n);const a=this.createDecompressOutputState(r,n),{packedInputCompressedAccounts:u,packedOutputCompressedAccounts:c,remainingAccounts:l}=Ut(r,s,a),d=pt({proof:i,inputCompressedAccountsWithMerkleContext:u,outputCompressedAccounts:c,relayFee:null,newAddressParams:[],compressOrDecompressLamports:n,isCompress:0}),h=[...Mt(Object.assign(Object.assign({},ce()),{feePayer:t,authority:t,solPoolPda:fo.deriveCompressedSolPda(),decompressionRecipient:o,systemProgram:e.SystemProgram.programId})),...Vt(l)];return new e.TransactionInstruction({programId:this.programId,keys:h,data:d})}}function yo(e,t){let r=st(0);t=st(t);const o=[];e.sort(((e,t)=>t.lamports.cmp(e.lamports)));for(const n of e){if(r.gte(st(t)))break;r=r.add(n.lamports),o.push(n)}if(r.lt(st(t)))throw new Error(`Insufficient balance for transfer. Required: ${t.toString()}, available: ${r.toString()}`);return[o,r]}fo.programId=new e.PublicKey("SySTEM1eSU2p4BGQfQpimFEWWSC1XDFeun3Nqzz3rT7");class go{constructor(e,t,r){this.index=e,this.value=t,this.nextIndex=r}equals(e){return this.value.eq(e.value)}compareTo(e){return this.value.cmp(e.value)}hash(e,t){try{return e.poseidonHash([st(this.value.toArray("be",32)).toString(),st(this.nextIndex).toString(),st(t.toArray("be",32)).toString()])}catch(e){throw new Error("Hashing failed")}}}class wo{constructor(e,t,r){this.newLowElement=e,this.newElement=t,this.newElementNextValue=r}}class vo{constructor(e,t,r){this.elements=e,this.currentNodeIndex=t,this.highestElementIndex=r}static default(){return new vo([new go(0,st(0),0)],0,0)}get(e){return this.elements[e]}length(){return Number(this.currentNodeIndex)}isEmpty(){return 0===this.currentNodeIndex}findElement(e){return this.elements.slice(0,this.length()+1).find((t=>t.value===e))}init(){try{const e=J;return this.append(e)}catch(e){throw new Error(`Failed to initialize IndexedArray: ${e}`)}}findLowElementIndex(e){for(let t=0;t<=this.length();t++){const r=this.elements[t];if(this.elements[r.nextIndex].value.gt(e)&&r.value.lt(e))return t;if(r.value.eq(e))throw new Error("Element already exists in the array")}return this.highestElementIndex}findLowElement(e){const t=this.findLowElementIndex(e);if(void 0===t)return[void 0,void 0];const r=this.elements[t];return[r,this.elements[r.nextIndex].value]}hashElement(e,t){const r=this.elements[t];if(!r)return;const o=this.elements[r.nextIndex];return o?e.poseidonHash([st(r.value.toArray("be",32)).toString(),st(r.nextIndex).toString(),st(o.value.toArray("be",32)).toString()]):void 0}append(e){const t=this.findLowElementIndex(e);if(void 0===t)throw new Error("Low element index not found.");return this.appendWithLowElementIndex(t,e)}appendWithLowElementIndex(e,t){const r=this.elements[e];if(0===r.nextIndex){if(t.lte(r.value))throw new Error("New element value must be greater than the low element value.")}else{const e=this.elements[r.nextIndex];if(t.lte(r.value))throw new Error("New element value must be greater than the low element value.");if(t.gte(e.value))throw new Error("New element value must be less than the next element value.")}const o=this.newElementWithLowElementIndex(e,t);return 0===r.nextIndex&&(this.highestElementIndex=o.newElement.index),this.currentNodeIndex=o.newElement.index,this.elements[this.length()]=o.newElement,this.elements[e]=o.newLowElement,o}lowest(){return this.elements.length>0?this.elements[0]:void 0}newElementWithLowElementIndex(e,t){const r=this.elements[e],o=this.currentNodeIndex+1,n=new go(o,t,r.nextIndex);r.nextIndex=o;const s=this.elements[n.nextIndex].value;return new wo(r,n,s)}newElement(e){const t=this.findLowElementIndex(e);if(void 0===t)throw new Error("Low element index not found.");return this.newElementWithLowElementIndex(t,e)}}class xo{constructor(e,t,r=[],{zeroElement:o="0"}={}){if(this.levels=e,this.capacity=2**e,this.zeroElement=o,this._lightWasm=t,r.length>this.capacity)throw new Error("Tree is full");this._zeros=[],this._layers=[],this._layers[0]=r,this._zeros[0]=this.zeroElement;for(let t=1;t<=e;t++)this._zeros[t]=this._lightWasm.poseidonHashString([this._zeros[t-1],this._zeros[t-1]]);this._rebuild()}_rebuild(){for(let e=1;e<=this.levels;e++){this._layers[e]=[];for(let t=0;t<Math.ceil(this._layers[e-1].length/2);t++)this._layers[e][t]=this._lightWasm.poseidonHashString([this._layers[e-1][2*t],2*t+1<this._layers[e-1].length?this._layers[e-1][2*t+1]:this._zeros[e-1]])}}root(){return this._layers[this.levels].length>0?this._layers[this.levels][0]:this._zeros[this.levels]}insert(e){if(this._layers[0].length>=this.capacity)throw new Error("Tree is full");this.update(this._layers[0].length,e)}bulkInsert(e){if(this._layers[0].length+e.length>this.capacity)throw new Error("Tree is full");this._layers[0].push(...e),this._rebuild()}update(e,t){if(isNaN(Number(e))||e<0||e>this._layers[0].length||e>=this.capacity)throw new Error("Insert index out of bounds: "+e);this._layers[0][e]=t;for(let t=1;t<=this.levels;t++)e>>=1,this._layers[t][e]=this._lightWasm.poseidonHashString([this._layers[t-1][2*e],2*e+1<this._layers[t-1].length?this._layers[t-1][2*e+1]:this._zeros[t-1]])}path(e){if(isNaN(Number(e))||e<0||e>=this._layers[0].length)throw new Error("Index out of bounds: "+e);const t=[],r=[];for(let o=0;o<this.levels;o++)r[o]=e%2,t[o]=(1^e)<this._layers[o].length?this._layers[o][1^e]:this._zeros[o],e>>=1;return{pathElements:t,pathIndices:r}}indexOf(e,t=null){return t?this._layers[0].findIndex((r=>t(e,r))):this._layers[0].indexOf(e)}elements(){return this._layers[0].slice()}serialize(){return{levels:this.levels,_zeros:this._zeros,_layers:this._layers}}static deserialize(e,t){const r=Object.assign(Object.create(this.prototype),e);return r._hash=t,r.capacity=2**r.levels,r.zeroElement=r._zeros[0],r}}async function bo(e){const t=[],{noopProgram:r,accountCompressionProgram:o}=ce(),n=(await e.getSignaturesForAddress(o,void 0,"confirmed")).map((e=>e.signature)),s=[];for(let t=0;t<n.length;t+=100){const r=n.slice(t,t+100),o=await e.getParsedTransactions(r,{maxSupportedTransactionVersion:0,commitment:"confirmed"});s.push(...o)}for(const r of s){if(!r||!r.transaction||!r.meta)continue;if(!r.meta.innerInstructions||0==r.meta.innerInstructions.length)continue;const o=r.transaction.message.accountKeys.map((e=>e.pubkey)),n=[],s=await e.getTransaction(r.transaction.signatures[0],{commitment:"confirmed",maxSupportedTransactionVersion:0});for(const e of(null==s?void 0:s.transaction.message.compiledInstructions)||[])if(e.data&&e.data.length>0){const t=Uint8Array.from(e.data);if(t.length===X.length&&X.every(((e,r)=>e===t[r])))continue;n.push(t)}const i=[];if(s.meta.innerInstructions&&s.meta.innerInstructions.length>0)for(const e of s.meta.innerInstructions)for(const t of e.instructions){const e=t.accounts.map((e=>o[e]));if(i.push(e),t.data&&t.data.length>0){const e=rt.decode(t.data);n.push(e)}}const a=Ao(n,i);a&&t.push(a)}if(t.length>0)return t;const i=s.filter((e=>e?e.transaction.message.accountKeys.some((e=>("string"==typeof e?e:e.pubkey.toBase58())===r.toBase58())):0));return Io(i,Eo)}const Io=(e,r)=>{const{noopProgram:o}=ce(),n=[];return e.forEach((e=>{!e||!e.meta||e.meta.err||!e.meta.innerInstructions||e.meta.innerInstructions.length<=0||e.meta.innerInstructions.forEach((s=>{if(s.instructions.length>0){const i=s.instructions[s.instructions.length-1];if("data"in i&&i.data&&i.programId.toBase58()===o.toBase58()){const o=rt.decode(i.data),s=r(t.Buffer.from(o),e);null!=s&&n.push(s)}}}))})),n},Eo=e=>{const r=t.Buffer.from(e.map((e=>e)));try{return Ct(r)}catch(e){return console.error("Error deserializing event:",e),null}};function Ao(e,r){let o=0,n=null,s=null;for(const r of e){const e=r.slice(0,8),s=rt.encode(e),i=rt.encode(Y),a=rt.encode(ee),u=rt.encode(te);if(s===i){n=At(t.Buffer.from(r)),o=1;break}if(s==a){n=Tt(t.Buffer.from(r)),o=1;break}if(s==u){n=Fr(Et(t.Buffer.from(r))),o=1;break}}if(!o)return null;for(const r of e){const e=r.slice(0,8);if(rt.encode(e)===rt.encode(oe)){const e=r.slice(12);s=Bt(t.Buffer.from(e))}}return n?Nt(s,r[r.length-1],n):null}async function To(e,t){return(await Mo(e)).find((e=>st(e.hash).eq(t)))}async function Mo(e){var t,r;const o=(await bo(e)).reverse(),n=[],s=[],i=await e.getStateTreeInfos();for(const e of o){for(let o=0;o<e.outputCompressedAccounts.length;o++){const s=uo(i,e.pubkeyArray[e.outputCompressedAccounts[o].merkleTreeIndex]),a=e.outputCompressedAccounts[o],u={treeInfo:s,hash:st(e.outputCompressedAccountHashes[o]),leafIndex:e.outputLeafIndices[o],proveByIndex:s.treeType===exports.TreeType.StateV2},c=at(u,a.compressedAccount.owner,a.compressedAccount.lamports,null!==(t=a.compressedAccount.data)&&void 0!==t?t:void 0,null!==(r=a.compressedAccount.address)&&void 0!==r?r:void 0);n.push(c)}for(let t=0;t<e.inputCompressedAccountHashes.length;t++){const r=e.inputCompressedAccountHashes[t];s.push(st(r))}}const a=n.filter((e=>!s.some((t=>t.eq(st(e.hash))))));return a.sort(((e,t)=>t.leafIndex-e.leafIndex)),a}function So(t,r=ye){if(null===t.data)return null;const{data:o}=t.data;if(0===o.length)return null;if(t.owner.toBase58()!==r.toBase58())throw new Error(`Invalid owner ${t.owner.toBase58()} for token layout`);try{const t=Buffer.from(o);let r=0;const n=new e.PublicKey(t.slice(r,r+32));r+=32;const s=new e.PublicKey(t.slice(r,r+32));r+=32;const i=new W(t.slice(r,r+8),"le");r+=8;const a=t[r];r+=1;const u=a?new e.PublicKey(t.slice(r,r+32)):null;r+=32;const c=t[r];r+=1;const l=t[r];return r+=1,{mint:n,owner:s,amount:i,delegate:u,state:c,tlv:l?t.slice(r):null}}catch(e){throw console.error("Decoding error:",e),e}}async function Co(e,t){const r=await Promise.all(e.map((e=>async function(e,t){const r=e.pubkeyArray,o=await t.getStateTreeInfos(),n=e.outputCompressedAccountHashes,s=e.outputCompressedAccounts.map(((t,s)=>{var i;const a=r[e.outputCompressedAccounts[s].merkleTreeIndex],u=uo(o,a);if(!(u.tree.equals(r[e.outputCompressedAccounts[s].merkleTreeIndex])||j.isV2()&&u.queue.equals(r[e.outputCompressedAccounts[s].merkleTreeIndex])))throw new Error("Invalid tree");const c={treeInfo:u,hash:st(n[s]),leafIndex:e.outputLeafIndices[s],proveByIndex:u.treeType===exports.TreeType.StateV2};if(!t.compressedAccount.data)throw new Error("No data");const l=So(t.compressedAccount);if(!l)throw new Error("Invalid token data");return{compressedAccount:at(c,t.compressedAccount.owner,t.compressedAccount.lamports,t.compressedAccount.data,null!==(i=t.compressedAccount.address)&&void 0!==i?i:void 0),parsed:l}}));return{inputCompressedAccountHashes:e.inputCompressedAccountHashes,outputCompressedAccounts:s}}(e,t)))),o=r.flatMap((e=>e.outputCompressedAccounts)),n=r.flatMap((e=>e.inputCompressedAccountHashes));return o.filter((e=>!n.some((t=>st(t).eq(e.compressedAccount.hash)))))}async function ko(e,t,r){const o=await bo(e);return{items:(await Co(o,e)).filter((e=>e.parsed.owner.equals(t)&&e.parsed.mint.equals(r))).sort(((e,t)=>e.compressedAccount.leafIndex-t.compressedAccount.leafIndex)),cursor:null}}async function _o(e,t,r){const o=await bo(e);return{items:(await Co(o,e)).filter((e=>{var o;return(null===(o=e.parsed.delegate)||void 0===o?void 0:o.equals(t))&&e.parsed.mint.equals(r)})),cursor:null}}async function Po(e,t){const r=await bo(e),o=(await Co(r,e)).filter((e=>st(e.compressedAccount.hash).eq(t)));if(0===o.length)throw new Error("No compressed account found");return o[0]}class Oo extends TypeError{constructor(e,t){let r;const{message:o,explanation:n,...s}=e,{path:i}=e,a=0===i.length?o:`At path: ${i.join(".")} -- ${o}`;super(n??a),null!=n&&(this.cause=a),Object.assign(this,s),this.name=this.constructor.name,this.failures=()=>r??(r=[e,...t()])}}function Lo(e){return"object"==typeof e&&null!=e}function Bo(e){return Lo(e)&&!Array.isArray(e)}function No(e){return"symbol"==typeof e?e.toString():"string"==typeof e?JSON.stringify(e):`${e}`}function Ro(e,t,r,o){if(1==e)return;0==e?e={}:"string"==typeof e&&(e={message:e});const{path:n,branch:s}=t,{type:i}=r,{refinement:a,message:u=`Expected a value of type \`${i}\`${a?` with refinement \`${a}\``:""}, but received: \`${No(o)}\``}=e;return{value:o,type:i,refinement:a,key:n[n.length-1],path:n,branch:s,...e,message:u}}function*Do(e,t,r,o){var n;Lo(n=e)&&"function"==typeof n[Symbol.iterator]||(e=[e]);for(const n of e){const e=Ro(n,t,r,o);e&&(yield e)}}function*Vo(e,t,r={}){const{path:o=[],branch:n=[e],coerce:s=0,mask:i=0}=r,a={path:o,branch:n,mask:i};s&&(e=t.coercer(e,a));let u="valid";for(const o of t.validator(e,a))o.explanation=r.message,u="not_valid",yield[o,void 0];for(let[c,l,d]of t.entries(e,a)){const t=Vo(l,d,{path:void 0===c?o:[...o,c],branch:void 0===c?n:[...n,l],coerce:s,mask:i,message:r.message});for(const r of t)r[0]?(u=null!=r[0].refinement?"not_refined":"not_valid",yield[r[0],void 0]):s&&(l=r[1],void 0===c?e=l:e instanceof Map?e.set(c,l):e instanceof Set?e.add(l):Lo(e)&&(void 0!==l||c in e)&&(e[c]=l))}if("not_valid"!==u)for(const o of t.refiner(e,a))o.explanation=r.message,u="not_refined",yield[o,void 0];"valid"===u&&(yield[void 0,e])}class Uo{constructor(e){const{type:t,schema:r,validator:o,refiner:n,coercer:s=(e=>e),entries:i=function*(){}}=e;this.type=t,this.schema=r,this.entries=i,this.coercer=s,this.validator=o?(e,t)=>Do(o(e,t),t,this,e):()=>[],this.refiner=n?(e,t)=>Do(n(e,t),t,this,e):()=>[]}assert(e,t){return function(e,t,r){const o=Ko(e,t,{message:r});if(o[0])throw o[0]}(e,this,t)}create(e,t){return qo(e,this,t)}is(e){return Fo(e,this)}mask(e,t){return function(e,t,r){const o=Ko(e,t,{coerce:1,mask:1,message:r});if(o[0])throw o[0];return o[1]}(e,this,t)}validate(e,t={}){return Ko(e,this,t)}}function qo(e,t,r){const o=Ko(e,t,{coerce:1,message:r});if(o[0])throw o[0];return o[1]}function Fo(e,t){return!Ko(e,t)[0]}function Ko(e,t,r={}){const o=Vo(e,t,r),n=function(e){const{done:t,value:r}=e.next();return t?void 0:r}(o);return n[0]?[new Oo(n[0],(function*(){for(const e of o)e[0]&&(yield e[0])})),void 0]:[void 0,n[1]]}function Ho(e,t){return new Uo({type:e,schema:null,validator:t})}function Wo(){return Ho("any",(()=>1))}function $o(e){return new Uo({type:"array",schema:e,*entries(t){if(e&&Array.isArray(t))for(const[r,o]of t.entries())yield[r,o,e]},coercer:e=>Array.isArray(e)?e.slice():e,validator:e=>Array.isArray(e)||`Expected an array value, but received: ${No(e)}`})}function jo(){return Ho("boolean",(e=>"boolean"==typeof e))}function zo(e){return Ho("instance",(t=>t instanceof e||`Expected a \`${e.name}\` instance, but received: ${No(t)}`))}function Zo(e){const t=No(e);return new Uo({type:"literal",schema:e,validator:r=>r===e||`Expected the literal \`${t}\`, but received: ${No(r)}`})}function Go(e){return new Uo({...e,validator:(t,r)=>null===t||e.validator(t,r),refiner:(t,r)=>null===t||e.refiner(t,r)})}function Qo(){return Ho("number",(e=>"number"==typeof e&&!isNaN(e)||`Expected a number, but received: ${No(e)}`))}function Jo(){return Ho("string",(e=>"string"==typeof e||`Expected a string, but received: ${No(e)}`))}function Xo(e){const t=Object.keys(e);return new Uo({type:"type",schema:e,*entries(r){if(Lo(r))for(const o of t)yield[o,r[o],e[o]]},validator:e=>Bo(e)||`Expected an object, but received: ${No(e)}`,coercer:e=>Bo(e)?{...e}:e})}function Yo(e){const t=e.map((e=>e.type)).join(" | ");return new Uo({type:"union",schema:null,coercer(t,r){for(const o of e){const[e,n]=o.validate(t,{coerce:1,mask:r.mask});if(!e)return n}return t},validator(r,o){const n=[];for(const t of e){const[...e]=Vo(r,t,o),[s]=e;if(!s[0])return[];for(const[t]of e)t&&n.push(t)}return[`Expected the value to satisfy a union of \`${t}\`, but received: ${No(r)}`,...n]}})}function en(){return Ho("unknown",(()=>1))}function tn(e,t,r){return new Uo({...e,coercer:(o,n)=>Fo(o,t)?e.coercer(r(o,n),n):e.coercer(o,n)})}var rn;exports.DerivationMode=void 0,(rn=exports.DerivationMode||(exports.DerivationMode={})).compressible="compressible",rn.standard="standard";const on=tn(zo(e.PublicKey),Jo(),(t=>new e.PublicKey(t))),nn=tn(zo(Array),Jo(),(t=>Array.from(new e.PublicKey(t).toBytes()))),sn=tn(zo(W),Jo(),(e=>ot(e,"base58"))),an=tn(jo(),Yo([Qo(),jo()]),(e=>Boolean(e))),un=tn(zo(W),Yo([Jo(),Qo()]),(e=>{if("number"==typeof e){if(!Number.isSafeInteger(e))throw new Error(`Unsafe integer. Precision loss: ${e}`);return st(e)}return st(e,10)})),cn=Jo();function ln(e){return Yo([Xo({jsonrpc:Zo("2.0"),id:Jo(),result:e}),Xo({jsonrpc:Zo("2.0"),id:Jo(),error:Xo({code:en(),message:Jo(),data:Go(Wo())})})])}const dn=ln(en());function hn(e){return tn(ln(e),dn,(t=>"error"in t?t:Object.assign(Object.assign({},t),{result:qo(t.result,e)})))}function pn(e){return hn(Xo({context:Xo({slot:Qo()}),value:e}))}const mn=Xo({treeType:Qo(),tree:on,queue:on,cpiContext:Go(on)}),fn=Xo({treeType:Qo(),tree:on,queue:on,cpiContext:Go(on),nextTreeContext:(yn=Go(mn),new Uo({...yn,validator:(e,t)=>void 0===e||yn.validator(e,t),refiner:(e,t)=>void 0===e||yn.refiner(e,t)}))});var yn;const gn=Xo({address:Go(nn),hash:sn,data:Go(Xo({data:cn,dataHash:sn,discriminator:un})),lamports:un,owner:on,leafIndex:Qo(),tree:on,seq:Go(un),slotCreated:un}),wn=Xo({address:Go(nn),hash:sn,data:Go(Xo({data:cn,dataHash:sn,discriminator:un})),lamports:un,owner:on,leafIndex:Qo(),seq:Go(un),slotCreated:un,merkleContext:fn,proveByIndex:an}),vn=Xo({mint:on,owner:on,amount:un,delegate:Go(on),state:Jo()}),xn=Xo({tokenData:vn,account:gn}),bn=Xo({tokenData:vn,account:wn}),In=Xo({items:$o(gn)}),En=Xo({items:$o(wn)}),An=Xo({items:$o(gn),cursor:Go(Jo())}),Tn=Xo({items:$o(wn),cursor:Go(Jo())}),Mn=Xo({items:$o(xn),cursor:Go(Jo())}),Sn=Xo({items:$o(bn),cursor:Go(Jo())}),Cn=Qo(),kn=Jo(),_n=Xo({items:$o(Xo({signature:Jo(),slot:Qo(),blockTime:Qo(),error:Go(Jo())}))}),Pn=Xo({items:$o(Xo({signature:Jo(),slot:Qo(),blockTime:Qo()})),cursor:Go(Jo())}),On=Xo({hash:sn,leafIndex:Qo(),merkleTree:on,proof:$o(sn),rootSeq:Qo(),root:sn}),Ln=Xo({hash:sn,leafIndex:Qo(),proof:$o(sn),root:sn,rootSeq:Qo(),proveByIndex:an,treeContext:fn}),Bn=Xo({address:sn,nextIndex:Qo(),merkleTree:on,proof:$o(sn),rootSeq:Qo(),root:sn,lowerRangeAddress:sn,higherRangeAddress:sn,lowElementLeafIndex:Qo()}),Nn=Xo({a:$o(Qo()),b:$o(Qo()),c:$o(Qo())}),Rn=Xo({rootIndex:Qo(),proveByIndex:an}),Dn=Xo({compressedProof:Nn,leafIndices:$o(Qo()),leaves:$o(sn),rootIndices:$o(Qo()),roots:$o(sn),merkleTrees:$o(on)}),Vn=Xo({hash:sn,root:sn,rootIndex:Rn,merkleContext:fn,leafIndex:Qo()}),Un=Xo({address:sn,root:sn,rootIndex:Qo(),merkleContext:fn}),qn=Xo({compressedProof:Go(Nn),accounts:$o(Vn),addresses:$o(Un)}),Fn=$o(On),Kn=$o(Ln),Hn=Xo({amount:un}),Wn=un,$n=Xo({balance:un,mint:on}),jn=Xo({tokenBalances:$o($n),cursor:Go(Jo())}),zn=Xo({items:$o($n),cursor:Go(Jo())}),Zn=Xo({cursor:Go(Jo()),items:$o(Xo({balance:un,owner:on}))}),Gn=Xo({hash:$o(Qo()),root:$o(Qo()),proof:$o($o(Qo()))}),Qn=Xo({items:$o(Xo({blockTime:Qo(),signature:Jo(),slot:Qo()}))}),Jn=Xo({items:$o(Xo({blockTime:Qo(),signature:Jo(),slot:Qo()})),cursor:Go(Jo())}),Xn=Xo({account:wn,txHash:sn,nullifier:sn}),Yn=Xo({compressionInfo:Xo({closedAccounts:$o(Xo({account:gn,optionalTokenData:Go(vn)})),openedAccounts:$o(Xo({account:gn,optionalTokenData:Go(vn)}))}),transaction:Wo()}),es=Xo({compressionInfo:Xo({closedAccounts:$o(Xo({account:Xn,optionalTokenData:Go(vn)})),openedAccounts:$o(Xo({account:wn,optionalTokenData:Go(vn)}))}),transaction:Wo()}),ts={Solana:"solana",Compressed:"compressed"};let rs=0;function os({discriminator:e,data:r,dataHash:o}){return{discriminator:e.toArray("le",8),data:t.Buffer.from(r,"base64"),dataHash:o.toArray("le",32)}}async function ns(t,r,o,n=0){var s,i;const a=G(n?"getCompressedTokenAccountsByDelegate":"getCompressedTokenAccountsByOwner"),u=n?"delegate":"owner",c=await is(t.compressionApiEndpoint,a,{[u]:r.toBase58(),mint:null===(s=o.mint)||void 0===s?void 0:s.toBase58(),limit:null===(i=o.limit)||void 0===i?void 0:i.toNumber(),cursor:o.cursor});let l;if(l=j.isV2()?qo(c,pn(Sn)):qo(c,pn(Mn)),"error"in l)throw new e.SolanaJSONRPCError(l.error,`failed to get info for compressed accounts by ${u} ${r.toBase58()}`);if(null===l.result.value)throw new Error("not implemented: NULL result");const d=[],h=await t.getStateTreeInfos();return l.result.value.items.map((e=>{var t;const o=e.account,n=e.tokenData,s=j.isV2()?o.merkleContext.tree:o.tree,i=j.isV2()?o.proveByIndex:0,a=uo(h,s),c=at(ut(a,o.hash,o.leafIndex,i),o.owner,st(o.lamports),o.data?os(o.data):void 0,o.address||void 0),l={mint:n.mint,owner:n.owner,amount:n.amount,delegate:n.delegate,state:["uninitialized","initialized","frozen"].indexOf(n.state),tlv:null};if((null===(t=l[u])||void 0===t?void 0:t.toBase58())!==r.toBase58())throw new Error(`RPC returned token account with ${u} different from requested ${u}`);d.push({compressedAccount:c,parsed:l})})),{items:d.sort(((e,t)=>t.compressedAccount.leafIndex-e.compressedAccount.leafIndex)),cursor:l.result.value.cursor}}function ss(e){return e.replace(/(":\s*)(-?\d+)(\s*[},])/g,((e,t,r,o)=>{const n=Number(r);return!Number.isNaN(n)&&(n>Number.MAX_SAFE_INTEGER||n<Number.MIN_SAFE_INTEGER)?`${t}"${r}"${o}`:e}))}const is=async(e,t,r=[],o=1,n=0)=>{const s=JSON.stringify({jsonrpc:"2.0",id:"test-account",method:t,params:r});if(n){const t=()=>{const t=s.replace(/"/g,'\\"');return`curl -X POST ${e} \\\n -H "Content-Type: application/json" \\\n -d "${t}"`};console.log("Debug: Stack trace:"),console.log((new Error).stack),console.log("\nDebug: curl:"),console.log(t()),console.log("\n")}const i=await fetch(e,{method:"POST",headers:{"Content-Type":"application/json"},body:s});if(!i.ok)throw new Error(`HTTP error! status: ${i.status}`);const a=ss(await i.text());return o?Dr(JSON.parse(a)):JSON.parse(a)},as=async(e,t,r=[],o=0)=>{let n,s="";o&&(s=`Proof generation for method:${t}`,console.time(s)),"inclusion"===t?n=JSON.stringify({circuitType:"inclusion",stateTreeHeight:26,inputCompressedAccounts:r}):"new-address"===t?n=JSON.stringify({circuitType:"non-inclusion",addressTreeHeight:26,newAddresses:r}):"combined"===t&&(n=JSON.stringify({circuitType:"combined",stateTreeHeight:26,addressTreeHeight:26,inputCompressedAccounts:r[0],newAddresses:r[1]}));const i=await fetch(`${e}/prove`,{method:"POST",headers:{"Content-Type":"application/json"},body:n});if(!i.ok)throw new Error(`Error fetching proof: ${i.statusText}`);const a=eo(Yr(await i.json()));return o&&console.timeEnd(s),a};function us(e){const t=[];for(let r=0;r<e.length;r++){const o={root:Nr(e[r].root),pathIndex:e[r].leafIndex,pathElements:e[r].merkleProof.map((e=>Nr(e))),leaf:Nr(st(e[r].hash))};t.push(o)}return t}function cs(e){const t=[];for(let r=0;r<e.length;r++){const o={root:Nr(e[r].root),value:Nr(e[r].value),pathIndex:e[r].indexHashedIndexedElementLeaf.toNumber(),pathElements:e[r].merkleProofHashedIndexedElementLeaf.map((e=>Nr(e))),nextIndex:e[r].nextIndex.toNumber(),leafLowerRangeValue:Nr(e[r].leafLowerRangeValue),leafHigherRangeValue:Nr(e[r].leafHigherRangeValue)};t.push(o)}return t}function ls(e,t,r){if(e.length!==t.length)throw new Error("Input lengths must match.");if(0===e.length)return st(0);let o=r.poseidonHashBN([e[0].toString(),t[0].toString()]);for(let n=1;n<e.length;n++)o=r.poseidonHashBN([o.toString(),e[n].toString(),t[n].toString()]);return o}function ds(e){const t=e.account,r=e.optionalTokenData,o=at(ut(t.treeInfo,t.hash.toArray("be",32),t.leafIndex,t.proveByIndex),t.owner,st(t.lamports),t.data?os(t.data):void 0,t.address||void 0);return null===r?{account:o,maybeTokenData:null}:{account:o,maybeTokenData:{mint:r.mint,owner:r.owner,amount:r.amount,delegate:r.delegate,state:["uninitialized","initialized","frozen"].indexOf(r.state),tlv:null}}}function hs(e,t){var r,o,n,s;const i=new Map;for(const e of t)i.set(e.signature,{signature:e.signature,slot:e.slot,blockTime:e.blockTime,err:null,memo:null,confirmationStatus:void 0,sources:[ts.Compressed]});for(const t of e)i.get(t.signature)?i.set(t.signature,{signature:t.signature,slot:t.slot,blockTime:null!==(r=t.blockTime)&&void 0!==r?r:null,err:t.err,memo:null!==(o=t.memo)&&void 0!==o?o:null,confirmationStatus:t.confirmationStatus,sources:[ts.Solana,ts.Compressed]}):i.set(t.signature,{signature:t.signature,slot:t.slot,blockTime:null!==(n=t.blockTime)&&void 0!==n?n:null,err:t.err,memo:null!==(s=t.memo)&&void 0!==s?s:null,confirmationStatus:t.confirmationStatus,sources:[ts.Solana]});return Array.from(i.values()).sort(((e,t)=>t.slot-e.slot))}class ps extends e.Connection{constructor(e,t,r,o){super(e,o||"confirmed"),this.allStateTreeInfos=null,this.lastStateTreeFetchTime=null,this.CACHE_TTL=36e5,this.fetchPromise=null,this.compressionApiEndpoint=t,this.proverEndpoint=r}async getCachedActiveStateTreeInfo(){}async getCachedActiveStateTreeInfos(){}async getStateTreeInfos(){if(de(this.rpcEndpoint))return Ze();if(this.allStateTreeInfos&&this.lastStateTreeFetchTime&&Date.now()-this.lastStateTreeFetchTime<=this.CACHE_TTL)return this.allStateTreeInfos;if(this.fetchPromise)return this.fetchPromise;let e;try{return this.fetchPromise=this.doFetch(),e=await this.fetchPromise,this.allStateTreeInfos=e,this.lastStateTreeFetchTime=Date.now(),e}finally{this.fetchPromise=null}}async doFetch(){const{mainnet:e,devnet:t}=le();try{return await ho({connection:this,stateTreeLUTPairs:[e[0]]})}catch(e){try{return await ho({connection:this,stateTreeLUTPairs:[t[0]]})}catch(t){throw new Error(`Failed to fetch state tree infos from both mainnet and devnet. Mainnet error: ${e}. Devnet error: ${t}`)}}}async getAddressTreeInfoV2(){const t=new e.PublicKey($e);return{tree:t,queue:t,cpiContext:void 0,treeType:exports.TreeType.AddressV2,nextTreeInfo:null}}async getCompressedAccount(t,r){if(!r&&!t)throw new Error("Either hash or address must be provided");if(r&&t)throw new Error("Only one of hash or address must be provided");const o=await this.getStateTreeInfos(),n=await is(this.compressionApiEndpoint,G("getCompressedAccount"),{hash:r?nt(r):void 0,address:t?nt(t):void 0});let s;if(s=j.isV2()?qo(n,pn(Go(wn))):qo(n,pn(Go(gn))),"error"in s)throw new e.SolanaJSONRPCError(s.error,`failed to get info for compressed account ${r?r.toString():t?t.toString():""}`);if(null===s.result.value)return null;const i=uo(o,j.isV2()?s.result.value.merkleContext.tree:s.result.value.tree),a=s.result.value;return at(ut(i,a.hash,a.leafIndex),a.owner,st(a.lamports),a.data?os(a.data):void 0,a.address||void 0)}async getCompressedBalance(t,r){if(!r&&!t)throw new Error("Either hash or address must be provided");if(r&&t)throw new Error("Only one of hash or address must be provided");const o=qo(await is(this.compressionApiEndpoint,"getCompressedBalance",{hash:r?nt(r):void 0,address:t?nt(t):void 0}),pn(Wn));if("error"in o)throw new e.SolanaJSONRPCError(o.error,`failed to get balance for compressed account ${r?r.toString():t?t.toString():""}`);return null===o.result.value?st(0):st(o.result.value)}async getCompressedBalanceByOwner(t){const r=qo(await is(this.compressionApiEndpoint,"getCompressedBalanceByOwner",{owner:t.toBase58()}),pn(Wn));if("error"in r)throw new e.SolanaJSONRPCError(r.error,`failed to get balance for compressed account ${t.toBase58()}`);return null===r.result.value?st(0):st(r.result.value)}async getCompressedAccountProof(t){const r=await is(this.compressionApiEndpoint,G("getCompressedAccountProof"),{hash:nt(t)});let o;if(o=j.isV2()?qo(r,pn(Ln)):qo(r,pn(On)),"error"in o)throw new e.SolanaJSONRPCError(o.error,`failed to get proof for compressed account ${t.toString()}`);if(null===o.result.value)throw new Error(`failed to get proof for compressed account ${t.toString()}`);const n=uo(await this.getStateTreeInfos(),j.isV2()?o.result.value.treeContext.tree:o.result.value.tree);return{hash:st(o.result.value.hash.toArray("be",32)),treeInfo:n,leafIndex:o.result.value.leafIndex,merkleProof:o.result.value.proof,rootIndex:o.result.value.rootSeq%2400,root:o.result.value.root,proveByIndex:j.isV2()?o.result.value.proveByIndex:0}}async getMultipleCompressedAccounts(t){const r=await is(this.compressionApiEndpoint,G("getMultipleCompressedAccounts"),{hashes:t.map((e=>nt(e)))});let o;if(o=j.isV2()?qo(r,pn(En)):qo(r,pn(In)),"error"in o)throw new e.SolanaJSONRPCError(o.error,`failed to get info for compressed accounts ${t.map((e=>nt(e))).join(", ")}`);if(null===o.result.value)throw new Error(`failed to get info for compressed accounts ${t.map((e=>nt(e))).join(", ")}`);const n=await this.getStateTreeInfos(),s=[];return o.result.value.items.map((e=>{const t=j.isV2()?e.merkleContext.tree:e.tree,r=uo(n,t),o=at(ut(r,st(e.hash.toArray("be",32)),e.leafIndex),e.owner,st(e.lamports),e.data?os(e.data):void 0,e.address||void 0);s.push(o)})),s.sort(((e,t)=>t.leafIndex-e.leafIndex))}async getMultipleCompressedAccountProofs(t){const r=await is(this.compressionApiEndpoint,G("getMultipleCompressedAccountProofs"),t.map((e=>nt(e))));let o;if(o=j.isV2()?qo(r,pn($o(Ln))):qo(r,pn($o(On))),"error"in o)throw new e.SolanaJSONRPCError(o.error,`failed to get proofs for compressed accounts ${t.map((e=>nt(e))).join(", ")}`);if(null===o.result.value)throw new Error(`failed to get proofs for compressed accounts ${t.map((e=>nt(e))).join(", ")}`);const n=[],s=await this.getStateTreeInfos();for(const e of o.result.value){const t=uo(s,j.isV2()?e.treeContext.tree:e.merkleTree),r={hash:st(e.hash.toArray("be",32)),treeInfo:t,leafIndex:e.leafIndex,merkleProof:e.proof,rootIndex:e.rootSeq%2400,root:e.root,proveByIndex:j.isV2()?e.proveByIndex:0};n.push(r)}return n}async getCompressedAccountsByOwner(t,r){var o;const n=await is(this.compressionApiEndpoint,G("getCompressedAccountsByOwner"),{owner:t.toBase58(),filters:(null==r?void 0:r.filters)||[],dataSlice:null==r?void 0:r.dataSlice,cursor:null==r?void 0:r.cursor,limit:null===(o=null==r?void 0:r.limit)||void 0===o?void 0:o.toNumber()});let s;if(s=j.isV2()?qo(n,pn(Tn)):qo(n,pn(An)),"error"in s)throw new e.SolanaJSONRPCError(s.error,`failed to get info for compressed accounts owned by ${t.toBase58()}`);if(null===s.result.value)return{items:[],cursor:null};const i=[],a=await this.getStateTreeInfos();return s.result.value.items.map((e=>{const t=uo(a,j.isV2()?e.merkleContext.tree:e.tree),r=at(ut(t,st(e.hash.toArray("be",32)),e.leafIndex,j.isV2()?e.proveByIndex:0),e.owner,st(e.lamports),e.data?os(e.data):void 0,e.address||void 0);i.push(r)})),{items:i.sort(((e,t)=>t.leafIndex-e.leafIndex)),cursor:s.result.value.cursor}}async getCompressedTokenAccountsByOwner(e,t){return t||(t={}),await ns(this,e,t,0)}async getCompressedTokenAccountsByDelegate(e,t){return t||(t={}),await ns(this,e,t,1)}async getCompressedTokenAccountBalance(t){const r=qo(await is(this.compressionApiEndpoint,"getCompressedTokenAccountBalance",{hash:nt(t)}),pn(Hn));if("error"in r)throw new e.SolanaJSONRPCError(r.error,`failed to get balance for compressed token account ${t.toString()}`);if(null===r.result.value)throw new Error(`failed to get balance for compressed token account ${t.toString()}`);return{amount:st(r.result.value.amount)}}async getCompressedTokenBalancesByOwner(t,r){var o,n;r||(r={});const s=qo(await is(this.compressionApiEndpoint,"getCompressedTokenBalancesByOwner",{owner:t.toBase58(),mint:null===(o=r.mint)||void 0===o?void 0:o.toBase58(),limit:null===(n=r.limit)||void 0===n?void 0:n.toNumber(),cursor:r.cursor}),pn(jn));if("error"in s)throw new e.SolanaJSONRPCError(s.error,`failed to get compressed token balances for owner ${t.toBase58()}`);if(null===s.result.value)throw new Error(`failed to get compressed token balances for owner ${t.toBase58()}`);return{items:r.mint?s.result.value.tokenBalances.filter((e=>e.mint.toBase58()===r.mint.toBase58())):s.result.value.tokenBalances,cursor:s.result.value.cursor}}async getCompressedTokenBalancesByOwnerV2(t,r){var o,n;r||(r={});const s=qo(await is(this.compressionApiEndpoint,"getCompressedTokenBalancesByOwnerV2",{owner:t.toBase58(),mint:null===(o=r.mint)||void 0===o?void 0:o.toBase58(),limit:null===(n=r.limit)||void 0===n?void 0:n.toNumber(),cursor:r.cursor}),pn(zn));if("error"in s)throw new e.SolanaJSONRPCError(s.error,`failed to get compressed token balances for owner ${t.toBase58()}`);if(null===s.result.value)throw new Error(`failed to get compressed token balances for owner ${t.toBase58()}`);const i=r.mint?s.result.value.items.filter((e=>e.mint.toBase58()===r.mint.toBase58())):s.result.value.items;return{context:s.result.context,value:{items:i,cursor:s.result.value.cursor}}}async getCompressionSignaturesForAccount(t){const r=qo(await is(this.compressionApiEndpoint,"getCompressionSignaturesForAccount",{hash:nt(t)}),pn(Qn));if("error"in r)throw new e.SolanaJSONRPCError(r.error,`failed to get signatures for compressed account ${t.toString()}`);return r.result.value.items}async getTransactionWithCompressionInfo(t){const r=await is(this.compressionApiEndpoint,G("getTransactionWithCompressionInfo"),{signature:t});let o;if(o=j.isV2()?qo(r,hn(es)):qo(r,hn(Yn)),"error"in o)throw new e.SolanaJSONRPCError(o.error,"failed to get slot");if(null===o.result.transaction)return null;const n=[],s=[],i=await this.getStateTreeInfos();j.isV2()?(o.result.compressionInfo.closedAccounts.map((e=>{n.push(function(e){const t={account:e.account.account,optionalTokenData:e.optionalTokenData},r={nullifier:e.account.nullifier,txHash:e.account.txHash},o=ds(t);return{account:o.account,maybeTokenData:o.maybeTokenData,maybeNullifierMetadata:r}}(e))})),o.result.compressionInfo.openedAccounts.map((e=>{s.push(ds(e))}))):(o.result.compressionInfo.closedAccounts.map((e=>{const t=uo(i,e.account.tree),r=at(ut(t,st(e.account.hash.toArray("be",32)),e.account.leafIndex),e.account.owner,st(e.account.lamports),e.account.data?os(e.account.data):void 0,e.account.address||void 0);n.push({account:r,maybeTokenData:e.optionalTokenData})})),o.result.compressionInfo.openedAccounts.map((e=>{const t=uo(i,e.account.tree),r=at(ut(t,st(e.account.hash.toArray("be",32)),e.account.leafIndex),e.account.owner,st(e.account.lamports),e.account.data?os(e.account.data):void 0,e.account.address||void 0);s.push({account:r,maybeTokenData:e.optionalTokenData})})));const a=e=>{const t=Object.values(e.reduce(((e,{maybeTokenData:t})=>{if(t){const{owner:r,mint:o,amount:n}=t,s=`${r.toBase58()}_${o.toBase58()}`;s in e?e[s].amount=e[s].amount.add(n):e[s]={owner:r,mint:o,amount:n}}return e}),{}));return t.length>0?t:void 0},u=a(n),c=a(s);return{compressionInfo:{closedAccounts:n,openedAccounts:s,preTokenBalances:u,postTokenBalances:c},transaction:o.result.transaction}}async getCompressionSignaturesForAddress(t,r){var o;const n=qo(await is(this.compressionApiEndpoint,"getCompressionSignaturesForAddress",{address:t.toBase58(),cursor:null==r?void 0:r.cursor,limit:null===(o=null==r?void 0:r.limit)||void 0===o?void 0:o.toNumber()}),pn(Jn));if("error"in n)throw new e.SolanaJSONRPCError(n.error,`failed to get signatures for address ${t.toBase58()}`);if(null===n.result.value)throw new Error(`failed to get signatures for address ${t.toBase58()}`);return n.result.value}async getCompressionSignaturesForOwner(t,r){var o;const n=qo(await is(this.compressionApiEndpoint,"getCompressionSignaturesForOwner",{owner:t.toBase58(),cursor:null==r?void 0:r.cursor,limit:null===(o=null==r?void 0:r.limit)||void 0===o?void 0:o.toNumber()}),pn(Jn));if("error"in n)throw new e.SolanaJSONRPCError(n.error,`failed to get signatures for owner ${t.toBase58()}`);if(null===n.result.value)throw new Error(`failed to get signatures for owner ${t.toBase58()}`);return n.result.value}async getCompressionSignaturesForTokenOwner(t,r){var o;const n=qo(await is(this.compressionApiEndpoint,"getCompressionSignaturesForTokenOwner",{owner:t.toBase58(),cursor:null==r?void 0:r.cursor,limit:null===(o=null==r?void 0:r.limit)||void 0===o?void 0:o.toNumber()}),pn(Jn));if("error"in n)throw new e.SolanaJSONRPCError(n.error,`failed to get signatures for owner ${t.toBase58()}`);if(null===n.result.value)throw new Error(`failed to get signatures for owner ${t.toBase58()}`);return n.result.value}async getIndexerHealth(){const t=qo(await is(this.compressionApiEndpoint,"getIndexerHealth"),hn(kn));if("error"in t)throw new e.SolanaJSONRPCError(t.error,"failed to get health");return t.result}async confirmTransactionIndexed(e){const t=de(this.rpcEndpoint)?1e4:2e4,r=de(this.rpcEndpoint)?100:200,o=Date.now();for(;;){if(await this.getIndexerSlot()>=e)return 1;if(Date.now()-o>t)throw new Error(`Timeout: Indexer slot did not reach the required slot within ${t/1e3}s`);await new Promise((e=>setTimeout(e,r)))}}async getIndexerSlot(){const t=qo(await is(this.compressionApiEndpoint,"getIndexerSlot"),hn(Cn));if("error"in t)throw new e.SolanaJSONRPCError(t.error,"failed to get slot");return t.result}async getCompressedMintTokenHolders(t,r){var o;const n=qo(await is(this.compressionApiEndpoint,"getCompressedMintTokenHolders",{mint:t.toBase58(),cursor:null==r?void 0:r.cursor,limit:null===(o=null==r?void 0:r.limit)||void 0===o?void 0:o.toNumber()}),pn(Zn));if("error"in n)throw new e.SolanaJSONRPCError(n.error,"failed to get mint token holders");return n.result}async getLatestCompressionSignatures(t,r){const o=qo(await is(this.compressionApiEndpoint,"getLatestCompressionSignatures",{limit:r,cursor:t}),pn(Pn));if("error"in o)throw new e.SolanaJSONRPCError(o.error,"failed to get latest non-voting signatures");return o.result}async getLatestNonVotingSignatures(t,r){const o=qo(await is(this.compressionApiEndpoint,"getLatestNonVotingSignatures",{limit:t,cursor:r}),pn(_n));if("error"in o)throw new e.SolanaJSONRPCError(o.error,"failed to get latest non-voting signatures");return o.result}async getMultipleNewAddressProofs(t){const r=qo(await is(this.compressionApiEndpoint,"getMultipleNewAddressProofs",t.map((e=>nt(e)))),pn($o(Bn)));if("error"in r)throw new e.SolanaJSONRPCError(r.error,`failed to get proofs for new addresses ${t.map((e=>nt(e))).join(", ")}`);if(null===r.result.value)throw new Error(`failed to get proofs for new addresses ${t.map((e=>nt(e))).join(", ")}`);const o=[];for(const e of r.result.value){const t={root:e.root,rootIndex:e.rootSeq%2400,value:e.address,leafLowerRangeValue:e.lowerRangeAddress,leafHigherRangeValue:e.higherRangeAddress,nextIndex:st(e.nextIndex),merkleProofHashedIndexedElementLeaf:e.proof,indexHashedIndexedElementLeaf:st(e.lowElementLeafIndex),treeInfo:{tree:e.merkleTree,queue:fe().addressQueue,treeType:exports.TreeType.AddressV1,nextTreeInfo:null}};o.push(t)}return o}async getValidityProof(e=[],t=[]){const r=await this.getMultipleCompressedAccounts(e),o=r.map((e=>e.treeInfo.tree)),n=r.map((e=>e.treeInfo.queue)),s=fe().addressTree,i=fe().addressQueue,a=e.map(((e,t)=>({hash:e,tree:o[t],queue:n[t]}))),u=t.map((e=>({address:e,tree:s,queue:i})));return this.getValidityProofV0(a,u)}async getValidityProofV0(e=[],t=[]){const{value:r}=await this.getValidityProofAndRpcContext(e,t);return r}async getValidityProofV2(e=[],t=[],r){const o=e.filter((e=>void 0!==e)).map((e=>({hash:e.hash,tree:e.treeInfo.tree,queue:e.treeInfo.queue}))),n=t.map((e=>{let t;if(r===exports.DerivationMode.compressible||void 0===r){const r=$r(Uint8Array.from(e.address),e.treeInfo.tree,ge);t=st(r.toBytes())}else t=st(e.address);return{address:t,tree:e.treeInfo.tree,queue:e.treeInfo.queue}})),{value:s}=await this.getValidityProofAndRpcContext(o,n);return s}async getValidityProofAndRpcContext(t=[],r=[]){Kt(t.length,r.length);const o=G("getValidityProof"),n=await is(this.compressionApiEndpoint,o,{hashes:t.map((({hash:e})=>nt(e))),newAddressesWithTrees:r.map((({address:e,tree:t})=>({address:nt(e),tree:t.toBase58()})))}),s=j.isV2();let i;if(i=qo(n,pn(s?qn:Dn)),"error"in i)throw new e.SolanaJSONRPCError(i.error,`failed to get validity proof for hashes ${t.map((e=>e.hash.toString())).join(", ")}`);if(null===i.result.value)throw new Error(`failed to get validity proof for hashes ${t.map((e=>e.hash.toString())).join(", ")}`);const a=i.result.value;if(s)return{value:{compressedProof:a.compressedProof,leaves:a.accounts.map((e=>e.hash)).concat(a.addresses.map((e=>e.address))),roots:a.accounts.map((e=>e.root)).concat(a.addresses.map((e=>e.root))),rootIndices:a.accounts.map((e=>e.rootIndex.rootIndex)).concat(a.addresses.map((e=>e.rootIndex))),proveByIndices:a.accounts.map((e=>e.rootIndex.proveByIndex)).concat(a.addresses.map((()=>0))),treeInfos:a.accounts.map((e=>e.merkleContext)).concat(a.addresses.map((e=>e.merkleContext))),leafIndices:a.accounts.map((e=>e.leafIndex)).concat(a.addresses.map((()=>0)))},context:i.result.context};{const e=await this.getStateTreeInfos(),t=a.merkleTrees.map((t=>t.equals(fe().addressTree)?{tree:t,queue:fe().addressQueue,treeType:exports.TreeType.AddressV1,nextTreeInfo:null}:co(e,t)));return{value:{compressedProof:a.compressedProof,roots:a.roots,rootIndices:a.rootIndices.map((e=>e)),leafIndices:a.leafIndices,leaves:a.leaves,treeInfos:t,proveByIndices:a.rootIndices.map((e=>e.proveByIndex))},context:i.result.context}}}async getAccountInfoInterface(e,r,o,n){Z(),n=null!=n?n:he();const s=$r(e.toBytes(),n.tree,r),[i,a]=await Promise.allSettled([this.getAccountInfo(e,o),this.getCompressedAccount(st(s.toBytes()))]),u="fulfilled"===i.status?i.value:null,c="fulfilled"===a.status?a.value:null;return u?c?{accountInfo:u,loadContext:{treeInfo:c.treeInfo,hash:c.hash,leafIndex:c.leafIndex,proveByIndex:c.proveByIndex},isCold:0}:{accountInfo:u,loadContext:void 0,isCold:0}:c&&c.data&&c.data.data.length>0?{accountInfo:{executable:0,owner:c.owner,lamports:c.lamports.toNumber(),data:t.Buffer.concat([t.Buffer.from(c.data.discriminator),c.data.data])},loadContext:{treeInfo:c.treeInfo,hash:c.hash,leafIndex:c.leafIndex,proveByIndex:c.proveByIndex},isCold:1}:null}async getSignaturesForAddressInterface(e,t,r){Z();const[o,n]=await Promise.allSettled([this.getSignaturesForAddress(e,t),this.getCompressionSignaturesForAddress(e,r)]),s="fulfilled"===o.status?o.value:[],i="fulfilled"===n.status?n.value.items:[];return{signatures:hs(s,i),solana:s,compressed:i}}async getSignaturesForOwnerInterface(e,t,r){Z();const[o,n]=await Promise.allSettled([this.getSignaturesForAddress(e,t),this.getCompressionSignaturesForOwner(e,r)]),s="fulfilled"===o.status?o.value:[],i="fulfilled"===n.status?n.value.items:[];return{signatures:hs(s,i),solana:s,compressed:i}}async getTokenAccountBalanceInterface(e,t,r,o){Z();const[n,s]=await Promise.allSettled([this.getTokenAccountBalance(e,o),this.getCompressedTokenBalancesByOwner(t,{mint:r})]);let i=st(0),a=0,u=null;if("fulfilled"===n.status&&n.value){const e=n.value.value;i=st(e.amount),a=e.decimals,u=e}let c=st(0);if("fulfilled"===s.status){const e=s.value.items.filter((e=>e.mint.equals(r)));for(const t of e)c=c.add(t.balance)}return{amount:i.add(c),hasColdBalance:!c.isZero(),decimals:a,solana:u}}async getBalanceInterface(e,t){Z();const[r,o]=await Promise.allSettled([this.getBalance(e,t),this.getCompressedBalanceByOwner(e)]),n="fulfilled"===r.status?st(r.value):st(0),s="fulfilled"===o.status?o.value:st(0);return{total:n.isZero()?s:n,hasColdBalance:!s.isZero()}}}class ms extends e.Connection{constructor(e,t,r,o,n,s){super(e,n||{commitment:"confirmed"}),this.log=0,this.allStateTreeInfos=null,this.lastStateTreeFetchTime=null,this.fetchPromise=null,this.CACHE_TTL=36e5,this.compressionApiEndpoint=r,this.proverEndpoint=o;const{depth:i,log:a}=null!=s?s:{},{merkleTreeHeight:u}=fe();this.lightWasm=t,this.depth=null!=i?i:u,this.log=null!=a?a:0}async getCachedActiveStateTreeInfo(){}async getCachedActiveStateTreeInfos(){}async getStateTreeInfos(){return Ze()}async doFetch(){throw new Error("doFetch not supported in test-rpc")}async getAddressTreeInfoV2(){const t=new e.PublicKey($e);return{tree:t,queue:t,cpiContext:void 0,treeType:exports.TreeType.AddressV2,nextTreeInfo:null}}async getCompressedAccount(e,t){if(e)throw new Error("address is not supported in test-rpc");if(!t)throw new Error("hash is required");const r=await To(this,t);return null!=r?r:null}async getCompressedBalance(e,t){if(e)throw new Error("address is not supported in test-rpc");if(!t)throw new Error("hash is required");const r=await To(this,t);if(!r)throw new Error("Account not found");return st(r.lamports)}async getCompressedBalanceByOwner(e){return(await this.getCompressedAccountsByOwner(e)).items.reduce(((e,t)=>e.add(t.lamports)),st(0))}async getCompressedAccountProof(e){return(await this.getMultipleCompressedAccountProofs([e]))[0]}async getMultipleCompressedAccounts(e){return await async function(e,t){return(await Mo(e)).filter((e=>t.some((t=>st(e.hash).eq(t))))).sort(((e,t)=>t.leafIndex-e.leafIndex))}(this,e)}async confirmTransactionIndexed(e){return 1}async getMultipleCompressedAccountProofs(t){const r=await bo(this).then((e=>e.reverse())),o=new Map,n=await this.getStateTreeInfos();for(const e of r)for(let t=0;t<e.outputCompressedAccounts.length;t++){const r=e.outputCompressedAccountHashes[t],s=uo(n,e.pubkeyArray[e.outputCompressedAccounts[t].merkleTreeIndex]);o.has(s.tree.toBase58())||o.set(s.tree.toBase58(),{leaves:[],leafIndices:[],treeInfo:s});const i=o.get(s.tree.toBase58());if(!i)throw new Error(`Tree not found: ${s.tree.toBase58()}`);i.leaves.push(r),i.leafIndices.push(e.outputLeafIndices[t])}const s=new Map;for(const[r,{leaves:n,treeInfo:i}]of o.entries()){const a=new e.PublicKey(r);let u;if(i.treeType===exports.TreeType.StateV1)u=new xo(this.depth,this.lightWasm,n.map((e=>st(e).toString())));else{if(i.treeType!==exports.TreeType.StateV2)throw new Error(`Invalid tree type: ${i.treeType} in test-rpc.ts`);u=new xo(32,this.lightWasm,[])}for(let e=0;e<t.length;e++){const r=n.findIndex((r=>st(r).eq(t[e])));if(-1!==r)if(i.treeType===exports.TreeType.StateV1){const o=u.path(r).pathElements.map((e=>st(e))),a=st(u.root()),c={hash:st(t[e].toArray("be",32)),treeInfo:i,leafIndex:r,merkleProof:o,proveByIndex:0,rootIndex:n.length,root:a};s.set(t[e].toString(),c)}else if(i.treeType===exports.TreeType.StateV2){const r=u._zeros.slice(0,-1).map((e=>st(e))),n=st(u.root()),c=o.get(a.toBase58()).leafIndices.findIndex((r=>t[e].eq(st(o.get(a.toBase58()).leaves[r])))),l={hash:st(t[e].toArray("be",32)),treeInfo:i,leafIndex:c,merkleProof:r,proveByIndex:1,rootIndex:0,root:n};s.set(t[e].toString(),l)}}}if(s.forEach(((e,t)=>{if(e.treeInfo.treeType===exports.TreeType.StateV1){const r=e.leafIndex,n=o.get(e.treeInfo.tree.toBase58()).leaves[r],s=st(n);if(!s.eq(e.hash))throw new Error(`Mismatch at index ${t}: expected ${e.hash.toString()}, got ${s.toString()}`)}})),new Set(t.map((e=>{const t=s.get(e.toString());if(!t)throw new Error(`Proof not found for hash: ${e.toString()}`);return t.treeInfo.treeType}))).size>1)throw new Error("Requested hashes belong to different tree types (V1/V2)");return t.map((e=>{const t=s.get(e.toString());if(!t)throw new Error(`No proof found for hash: ${e.toString()}`);return t}))}async getCompressedAccountsByOwner(e,t){const r=await async function(e,t){return(await Mo(e)).filter((e=>e.owner.equals(t)))}(this,e);return{items:r,cursor:null}}async getLatestCompressionSignatures(e,t){throw new Error("getLatestNonVotingSignaturesWithContext not supported in test-rpc")}async getLatestNonVotingSignatures(e){throw new Error("getLatestNonVotingSignaturesWithContext not supported in test-rpc")}async getCompressedTokenAccountsByOwner(e,t){return await ko(this,e,t.mint)}async getCompressedTokenAccountsByDelegate(e,t){return await _o(this,e,t.mint)}async getCompressedTokenAccountBalance(e){const t=await Po(this,e);return{amount:st(t.parsed.amount)}}async getCompressedTokenBalancesByOwner(e,t){return{items:(await ko(this,e,t.mint)).items.map((e=>({balance:st(e.parsed.amount),mint:e.parsed.mint}))),cursor:null}}async getCompressedTokenBalancesByOwnerV2(e,t){return{context:{slot:1},value:{items:(await ko(this,e,t.mint)).items.map((e=>({balance:st(e.parsed.amount),mint:e.parsed.mint}))),cursor:null}}}async getCompressionSignaturesForAccount(e){throw new Error("getCompressionSignaturesForAccount not implemented in test-rpc")}async getTransactionWithCompressionInfo(e){throw new Error("getCompressedTransaction not implemented in test-rpc")}async getCompressionSignaturesForAddress(e,t){throw new Error("getSignaturesForAddress3 not implemented")}async getCompressionSignaturesForOwner(e,t){throw new Error("getSignaturesForOwner not implemented")}async getCompressionSignaturesForTokenOwner(e,t){throw new Error("getSignaturesForTokenOwner not implemented")}async getIndexerHealth(){return"ok"}async getIndexerSlot(){return 1}async getMultipleNewAddressProofs(e){const t=vo.default(),r=[];t.init();const o=[];for(let e=0;e<r.length;e++)t.append(st(r[e]));for(let e=0;e<t.elements.length;e++){const r=t.hashElement(this.lightWasm,e);o.push(st(r))}const n=new xo(this.depth,this.lightWasm,o.map((e=>st(e).toString()))),s=[];for(let r=0;r<e.length;r++){const[o]=t.findLowElement(e[r]);if(!o)throw new Error("Address not found");const i=o.index,a=n.path(i).pathElements.map((e=>st(e))),u=t.get(o.nextIndex).value,c={root:st(n.root()),rootIndex:3,value:e[r],leafLowerRangeValue:o.value,leafHigherRangeValue:u,nextIndex:st(o.nextIndex),merkleProofHashedIndexedElementLeaf:a,indexHashedIndexedElementLeaf:st(o.index),treeInfo:{tree:fe().addressTree,queue:fe().addressQueue,treeType:exports.TreeType.AddressV1,nextTreeInfo:null}};s.push(c)}return s}async getCompressedMintTokenHolders(e,t){throw new Error("getCompressedMintTokenHolders not implemented in test-rpc")}async getValidityProofAndRpcContext(e=[],t=[]){if(t.some((e=>!(e instanceof W))))throw new Error("AddressWithTree is not supported in test-rpc");return{value:await this.getValidityProofV0(e,t),context:{slot:1}}}async getValidityProof(e=[],t=[]){if(t.some((e=>!(e instanceof W))))throw new Error("AddressWithTree is not supported in test-rpc");let r;const o=[];if(0===e.length&&0===t.length)throw new Error("Empty input. Provide hashes and/or new addresses.");if(e.length>0&&0===t.length){for(const t of e){const e=await this.getCompressedAccount(void 0,t);if(!e)throw new Error("Account not found");o.push(e.treeInfo)}const t=o.some((e=>e.treeType===exports.TreeType.StateV1)),n=await this.getMultipleCompressedAccountProofs(e);if(t){const e=us(n);r={compressedProof:await as(this.proverEndpoint,"inclusion",e,this.log),roots:n.map((e=>e.root)),rootIndices:n.map((e=>e.rootIndex)),leafIndices:n.map((e=>e.leafIndex)),leaves:n.map((e=>st(e.hash))),treeInfos:n.map((e=>e.treeInfo)),proveByIndices:n.map((e=>e.proveByIndex))}}else r={compressedProof:null,roots:n.map((()=>st(0))),rootIndices:n.map((e=>e.rootIndex)),leafIndices:n.map((e=>e.leafIndex)),leaves:n.map((e=>st(e.hash))),treeInfos:n.map((e=>e.treeInfo)),proveByIndices:n.map((e=>e.proveByIndex))}}else if(0===e.length&&t.length>0){const e=await this.getMultipleNewAddressProofs(t),o=cs(e);r={compressedProof:await as(this.proverEndpoint,"new-address",o,this.log),roots:e.map((e=>e.root)),rootIndices:e.map((()=>3)),leafIndices:e.map((e=>e.indexHashedIndexedElementLeaf.toNumber())),leaves:e.map((e=>st(e.value))),treeInfos:e.map((e=>e.treeInfo)),proveByIndices:e.map((()=>0))}}else{if(!(e.length>0&&t.length>0))throw new Error("Invalid input");{const o=await this.getMultipleCompressedAccountProofs(e),n=await this.getMultipleNewAddressProofs(t),s=o.map((e=>e.treeInfo)).some((e=>e.treeType===exports.TreeType.StateV1)),i=cs(n);let a;if(s){const e=us(o);a=await as(this.proverEndpoint,"combined",[e,i],1)}else a=await as(this.proverEndpoint,"new-address",i,1);r={compressedProof:a,roots:o.map((e=>s?e.root:st(0))).concat(n.map((e=>e.root))),rootIndices:o.map((e=>e.rootIndex)).concat(n.map((()=>3))),leafIndices:o.map((e=>e.leafIndex)).concat(n.map((e=>e.indexHashedIndexedElementLeaf.toNumber()))),leaves:o.map((e=>st(e.hash))).concat(n.map((e=>st(e.value)))),treeInfos:o.map((e=>e.treeInfo)).concat(n.map((e=>e.treeInfo))),proveByIndices:o.map((e=>e.proveByIndex)).concat(n.map((()=>0)))}}}return r}async getValidityProofV0(e=[],t=[]){return this.getValidityProof(e.map((e=>e.hash)),t.map((e=>e.address)))}async getValidityProofV2(e=[],t=[],r){const o=e.filter((e=>void 0!==e)).map((e=>({hash:e.hash,tree:e.treeInfo.tree,queue:e.treeInfo.queue}))),n=t.map((e=>({address:e.address,tree:e.treeInfo.tree,queue:e.treeInfo.queue})));return this.getValidityProofV0(o,n)}async getAccountInfoInterface(e,t,r){throw new Error("getAccountInfoInterface not implemented in TestRpc")}async getSignaturesForAddressInterface(e,t,r){throw new Error("getSignaturesForAddressInterface not implemented in TestRpc")}async getSignaturesForOwnerInterface(e,t,r){throw new Error("getSignaturesForOwnerInterface not implemented in TestRpc")}async getTokenAccountBalanceInterface(e,t,r,o){throw new Error("getTokenAccountBalanceInterface not implemented in TestRpc")}async getBalanceInterface(e,t){throw new Error("getBalanceInterface not implemented in TestRpc")}}let fs=1;const ys=xs(255),gs=xs(254),ws=xs(253),vs=xs(252);function xs(t){if(t||(t=fs,fs++),t>255)return e.Keypair.generate();const r=new Uint8Array(32);return r[31]=t,e.Keypair.fromSeed(r)}var bs,Is,Es,As,Ts,Ms,Ss,Cs;exports.UtxoErrorCode=void 0,(bs=exports.UtxoErrorCode||(exports.UtxoErrorCode={})).NEGATIVE_LAMPORTS="NEGATIVE_LAMPORTS",bs.NOT_U64="NOT_U64",bs.BLINDING_EXCEEDS_FIELD_SIZE="BLINDING_EXCEEDS_FIELD_SIZE",exports.SelectInUtxosErrorCode=void 0,(Is=exports.SelectInUtxosErrorCode||(exports.SelectInUtxosErrorCode={})).FAILED_TO_FIND_UTXO_COMBINATION="FAILED_TO_FIND_UTXO_COMBINATION",Is.INVALID_NUMBER_OF_IN_UTXOS="INVALID_NUMBER_OF_IN_UTXOS",exports.CreateUtxoErrorCode=void 0,(Es=exports.CreateUtxoErrorCode||(exports.CreateUtxoErrorCode={})).OWNER_UNDEFINED="OWNER_UNDEFINED",Es.INVALID_OUTPUT_UTXO_LENGTH="INVALID_OUTPUT_UTXO_LENGTH",Es.UTXO_DATA_UNDEFINED="UTXO_DATA_UNDEFINED",exports.RpcErrorCode=void 0,(As=exports.RpcErrorCode||(exports.RpcErrorCode={})).CONNECTION_UNDEFINED="CONNECTION_UNDEFINED",As.RPC_PUBKEY_UNDEFINED="RPC_PUBKEY_UNDEFINED",As.RPC_METHOD_NOT_IMPLEMENTED="RPC_METHOD_NOT_IMPLEMENTED",As.RPC_INVALID="RPC_INVALID",exports.LookupTableErrorCode=void 0,(Ts=exports.LookupTableErrorCode||(exports.LookupTableErrorCode={})).LOOK_UP_TABLE_UNDEFINED="LOOK_UP_TABLE_UNDEFINED",Ts.LOOK_UP_TABLE_NOT_INITIALIZED="LOOK_UP_TABLE_NOT_INITIALIZED",exports.HashErrorCode=void 0,(exports.HashErrorCode||(exports.HashErrorCode={})).NO_POSEIDON_HASHER_PROVIDED="NO_POSEIDON_HASHER_PROVIDED",exports.ProofErrorCode=void 0,(Ms=exports.ProofErrorCode||(exports.ProofErrorCode={})).INVALID_PROOF="INVALID_PROOF",Ms.PROOF_INPUT_UNDEFINED="PROOF_INPUT_UNDEFINED",Ms.PROOF_GENERATION_FAILED="PROOF_GENERATION_FAILED",exports.MerkleTreeErrorCode=void 0,(Ss=exports.MerkleTreeErrorCode||(exports.MerkleTreeErrorCode={})).MERKLE_TREE_NOT_INITIALIZED="MERKLE_TREE_NOT_INITIALIZED",Ss.SOL_MERKLE_TREE_UNDEFINED="SOL_MERKLE_TREE_UNDEFINED",Ss.MERKLE_TREE_UNDEFINED="MERKLE_TREE_UNDEFINED",Ss.INPUT_UTXO_NOT_INSERTED_IN_MERKLE_TREE="INPUT_UTXO_NOT_INSERTED_IN_MERKLE_TREE",Ss.MERKLE_TREE_INDEX_UNDEFINED="MERKLE_TREE_INDEX_UNDEFINED",Ss.MERKLE_TREE_SET_SPACE_UNDEFINED="MERKLE_TREE_SET_SPACE_UNDEFINED",exports.UtilsErrorCode=void 0,(Cs=exports.UtilsErrorCode||(exports.UtilsErrorCode={})).ACCOUNT_NAME_UNDEFINED_IN_IDL="ACCOUNT_NAME_UNDEFINED_IN_IDL",Cs.PROPERTY_UNDEFINED="PROPERTY_UNDEFINED",Cs.LOOK_UP_TABLE_CREATION_FAILED="LOOK_UP_TABLE_CREATION_FAILED",Cs.UNSUPPORTED_ARCHITECTURE="UNSUPPORTED_ARCHITECTURE",Cs.UNSUPPORTED_PLATFORM="UNSUPPORTED_PLATFORM",Cs.ACCOUNTS_UNDEFINED="ACCOUNTS_UNDEFINED",Cs.INVALID_NUMBER="INVALID_NUMBER";class ks extends Error{constructor(e,t,r){super(`${e}: ${r}`),this.code=e,this.functionName=t,this.codeMessage=r}}exports.ADDRESS_QUEUE_ROLLOVER_FEE=Xe,exports.ADDRESS_TREE_NETWORK_FEE_V1=et,exports.ADDRESS_TREE_NETWORK_FEE_V2=tt,exports.ALICE=ys,exports.AccountProofResult=Gn,exports.AppendLeavesInputLayout=_t,exports.AppendNullifyCreateAddressInputsMetaLayout=kt,exports.BETA_REQUIRED_ERROR=z,exports.BOB=gs,exports.BalanceResult=Hn,exports.CHARLIE=ws,exports.COMPRESSED_TOKEN_PROGRAM_ID=ye,exports.COMPUTE_BUDGET_PATTERN=X,exports.CTOKEN_PROGRAM_ID=ge,exports.CompressedAccountLayout=ct,exports.CompressedAccountResult=gn,exports.CompressedAccountResultV2=wn,exports.CompressedAccountsByOwnerResult=An,exports.CompressedAccountsByOwnerResultV2=Tn,exports.CompressedCpiContextLayout=yt,exports.CompressedMintTokenHoldersResult=Zn,exports.CompressedProofLayout=ft,exports.CompressedTokenAccountResult=xn,exports.CompressedTokenAccountResultV2=bn,exports.CompressedTokenAccountsByOwnerOrDelegateResult=Mn,exports.CompressedTokenAccountsByOwnerOrDelegateResultV2=Sn,exports.CompressedTransactionResult=Yn,exports.CompressedTransactionResultV2=es,exports.CreateUtxoError=class extends ks{},exports.DAVE=vs,exports.DEFAULT_MERKLE_TREE_HEIGHT=Ge,exports.DEFAULT_MERKLE_TREE_ROOTS=2800,exports.DEFAULT_ZERO="0",exports.FIELD_SIZE=Q,exports.HIGHEST_ADDRESS_PLUS_ONE=J,exports.HashError=class extends ks{},exports.HealthResult=kn,exports.IDL={version:"1.2.0",name:"light_system_program",constants:[{name:"SOL_POOL_PDA_SEED",type:"bytes",value:"[115, 111, 108, 95, 112, 111, 111, 108, 95, 112, 100, 97]"}],instructions:[{name:"initCpiContextAccount",accounts:[{name:"feePayer",isMut:1,isSigner:1},{name:"cpiContextAccount",isMut:1,isSigner:0},{name:"associatedMerkleTree",isMut:0,isSigner:0}],args:[]},{name:"invoke",accounts:[{name:"feePayer",isMut:1,isSigner:1,docs:["Fee payer needs to be mutable to pay rollover and protocol fees."]},{name:"authority",isMut:0,isSigner:1},{name:"registeredProgramPda",isMut:0,isSigner:0},{name:"noopProgram",isMut:0,isSigner:0},{name:"accountCompressionAuthority",isMut:0,isSigner:0,docs:["This pda is used to invoke the account compression program."]},{name:"accountCompressionProgram",isMut:0,isSigner:0,docs:["Merkle trees."]},{name:"solPoolPda",isMut:1,isSigner:0,isOptional:1,docs:["Sol pool pda is used to store the native sol that has been compressed.","It's only required when compressing or decompressing sol."]},{name:"decompressionRecipient",isMut:1,isSigner:0,isOptional:1,docs:["Only needs to be provided for decompression as a recipient for the","decompressed sol.","Compressed sol originate from authority."]},{name:"systemProgram",isMut:0,isSigner:0}],args:[{name:"inputs",type:"bytes"}]},{name:"invokeCpi",accounts:[{name:"feePayer",isMut:1,isSigner:1,docs:["Fee payer needs to be mutable to pay rollover and protocol fees."]},{name:"authority",isMut:0,isSigner:1},{name:"registeredProgramPda",isMut:0,isSigner:0},{name:"noopProgram",isMut:0,isSigner:0},{name:"accountCompressionAuthority",isMut:0,isSigner:0},{name:"accountCompressionProgram",isMut:0,isSigner:0},{name:"invokingProgram",isMut:0,isSigner:0},{name:"solPoolPda",isMut:1,isSigner:0,isOptional:1},{name:"decompressionRecipient",isMut:1,isSigner:0,isOptional:1},{name:"systemProgram",isMut:0,isSigner:0},{name:"cpiContextAccount",isMut:1,isSigner:0,isOptional:1}],args:[{name:"inputs",type:"bytes"}]},{name:"invokeCpiWithReadOnly",accounts:[{name:"feePayer",isMut:1,isSigner:1,docs:["Fee payer needs to be mutable to pay rollover and protocol fees."]},{name:"authority",isMut:0,isSigner:1},{name:"registeredProgramPda",isMut:0,isSigner:0},{name:"noopProgram",isMut:0,isSigner:0},{name:"accountCompressionAuthority",isMut:0,isSigner:0},{name:"accountCompressionProgram",isMut:0,isSigner:0},{name:"invokingProgram",isMut:0,isSigner:0},{name:"solPoolPda",isMut:1,isSigner:0,isOptional:1},{name:"decompressionRecipient",isMut:1,isSigner:0,isOptional:1},{name:"systemProgram",isMut:0,isSigner:0},{name:"cpiContextAccount",isMut:1,isSigner:0,isOptional:1}],args:[{name:"inputs",type:"bytes"}]},{name:"stubIdlBuild",docs:["This function is a stub to allow Anchor to include the input types in","the IDL. It should not be included in production builds nor be called in","practice."],accounts:[{name:"feePayer",isMut:1,isSigner:1,docs:["Fee payer needs to be mutable to pay rollover and protocol fees."]},{name:"authority",isMut:0,isSigner:1},{name:"registeredProgramPda",isMut:0,isSigner:0},{name:"noopProgram",isMut:0,isSigner:0},{name:"accountCompressionAuthority",isMut:0,isSigner:0,docs:["This pda is used to invoke the account compression program."]},{name:"accountCompressionProgram",isMut:0,isSigner:0,docs:["Merkle trees."]},{name:"solPoolPda",isMut:1,isSigner:0,isOptional:1,docs:["Sol pool pda is used to store the native sol that has been compressed.","It's only required when compressing or decompressing sol."]},{name:"decompressionRecipient",isMut:1,isSigner:0,isOptional:1,docs:["Only needs to be provided for decompression as a recipient for the","decompressed sol.","Compressed sol originate from authority."]},{name:"systemProgram",isMut:0,isSigner:0}],args:[{name:"inputs1",type:{defined:"InstructionDataInvoke"}},{name:"inputs2",type:{defined:"InstructionDataInvokeCpi"}},{name:"inputs3",type:{defined:"PublicTransactionEvent"}}]}],accounts:[{name:"cpiContextAccount",docs:["Collects instruction data without executing a compressed transaction.","Signer checks are performed on instruction data.","Collected instruction data is combined with the instruction data of the executing cpi,","and executed as a single transaction.","This enables to use input compressed accounts that are owned by multiple programs,","with one zero-knowledge proof."],type:{kind:"struct",fields:[{name:"feePayer",type:"publicKey"},{name:"associatedMerkleTree",type:"publicKey"},{name:"context",type:{vec:{defined:"InstructionDataInvokeCpi"}}}]}}],types:[{name:"InstructionDataInvoke",type:{kind:"struct",fields:[{name:"proof",type:{option:{defined:"CompressedProof"}}},{name:"inputCompressedAccountsWithMerkleContext",type:{vec:{defined:"PackedCompressedAccountWithMerkleContext"}}},{name:"outputCompressedAccounts",type:{vec:{defined:"OutputCompressedAccountWithPackedContext"}}},{name:"relayFee",type:{option:"u64"}},{name:"newAddressParams",type:{vec:{defined:"NewAddressParamsPacked"}}},{name:"compressOrDecompressLamports",type:{option:"u64"}},{name:"isCompress",type:"bool"}]}},{name:"NewAddressParamsPacked",type:{kind:"struct",fields:[{name:"seed",type:{array:["u8",32]}},{name:"addressQueueAccountIndex",type:"u8"},{name:"addressMerkleTreeAccountIndex",type:"u8"},{name:"addressMerkleTreeRootIndex",type:"u16"}]}},{name:"OutputCompressedAccountWithPackedContext",type:{kind:"struct",fields:[{name:"compressedAccount",type:{defined:"CompressedAccount"}},{name:"merkleTreeIndex",type:"u8"}]}},{name:"CompressedProof",type:{kind:"struct",fields:[{name:"a",type:{array:["u8",32]}},{name:"b",type:{array:["u8",64]}},{name:"c",type:{array:["u8",32]}}]}},{name:"InstructionDataInvokeCpi",type:{kind:"struct",fields:[{name:"proof",type:{option:{defined:"CompressedProof"}}},{name:"newAddressParams",type:{vec:{defined:"NewAddressParamsPacked"}}},{name:"inputCompressedAccountsWithMerkleContext",type:{vec:{defined:"PackedCompressedAccountWithMerkleContext"}}},{name:"outputCompressedAccounts",type:{vec:{defined:"OutputCompressedAccountWithPackedContext"}}},{name:"relayFee",type:{option:"u64"}},{name:"compressOrDecompressLamports",type:{option:"u64"}},{name:"isCompress",type:"bool"},{name:"cpiContext",type:{option:{defined:"CompressedCpiContext"}}}]}},{name:"CompressedCpiContext",type:{kind:"struct",fields:[{name:"setContext",docs:["Is set by the program that is invoking the CPI to signal that is should","set the cpi context."],type:"bool"},{name:"firstSetContext",docs:["Is set to wipe the cpi context since someone could have set it before","with unrelated data."],type:"bool"},{name:"cpiContextAccountIndex",docs:["Index of cpi context account in remaining accounts."],type:"u8"}]}},{name:"CompressedAccount",type:{kind:"struct",fields:[{name:"owner",type:"publicKey"},{name:"lamports",type:"u64"},{name:"address",type:{option:{array:["u8",32]}}},{name:"data",type:{option:{defined:"CompressedAccountData"}}}]}},{name:"CompressedAccountData",type:{kind:"struct",fields:[{name:"discriminator",type:{array:["u8",8]}},{name:"data",type:"bytes"},{name:"dataHash",type:{array:["u8",32]}}]}},{name:"PackedCompressedAccountWithMerkleContext",type:{kind:"struct",fields:[{name:"compressedAccount",type:{defined:"CompressedAccount"}},{name:"merkleContext",type:{defined:"PackedMerkleContext"}},{name:"rootIndex",docs:["Index of root used in inclusion validity proof."],type:"u16"},{name:"readOnly",docs:["Placeholder to mark accounts read-only unimplemented set to false."],type:"bool"}]}},{name:"PackedMerkleContext",type:{kind:"struct",fields:[{name:"merkleTreePubkeyIndex",type:"u8"},{name:"queuePubkeyIndex",type:"u8"},{name:"leafIndex",type:"u32"},{name:"proveByIndex",type:"bool"}]}},{name:"MerkleTreeSequenceNumber",type:{kind:"struct",fields:[{name:"pubkey",type:"publicKey"},{name:"seq",type:"u64"}]}},{name:"PublicTransactionEvent",type:{kind:"struct",fields:[{name:"inputCompressedAccountHashes",type:{vec:{array:["u8",32]}}},{name:"outputCompressedAccountHashes",type:{vec:{array:["u8",32]}}},{name:"outputCompressedAccounts",type:{vec:{defined:"OutputCompressedAccountWithPackedContext"}}},{name:"outputLeafIndices",type:{vec:"u32"}},{name:"sequenceNumbers",type:{vec:{defined:"MerkleTreeSequenceNumber"}}},{name:"relayFee",type:{option:"u64"}},{name:"isCompress",type:"bool"},{name:"compressOrDecompressLamports",type:{option:"u64"}},{name:"pubkeyArray",type:{vec:"publicKey"}},{name:"message",type:{option:"bytes"}}]}}],errors:[{code:6e3,name:"SumCheckFailed",msg:"Sum check failed"},{code:6001,name:"SignerCheckFailed",msg:"Signer check failed"},{code:6002,name:"CpiSignerCheckFailed",msg:"Cpi signer check failed"},{code:6003,name:"ComputeInputSumFailed",msg:"Computing input sum failed."},{code:6004,name:"ComputeOutputSumFailed",msg:"Computing output sum failed."},{code:6005,name:"ComputeRpcSumFailed",msg:"Computing rpc sum failed."},{code:6006,name:"InvalidAddress",msg:"InvalidAddress"},{code:6007,name:"DeriveAddressError",msg:"DeriveAddressError"},{code:6008,name:"CompressedSolPdaUndefinedForCompressSol",msg:"CompressedSolPdaUndefinedForCompressSol"},{code:6009,name:"DecompressLamportsUndefinedForCompressSol",msg:"DecompressLamportsUndefinedForCompressSol"},{code:6010,name:"CompressedSolPdaUndefinedForDecompressSol",msg:"CompressedSolPdaUndefinedForDecompressSol"},{code:6011,name:"DeCompressLamportsUndefinedForDecompressSol",msg:"DeCompressLamportsUndefinedForDecompressSol"},{code:6012,name:"DecompressRecipientUndefinedForDecompressSol",msg:"DecompressRecipientUndefinedForDecompressSol"},{code:6013,name:"WriteAccessCheckFailed",msg:"WriteAccessCheckFailed"},{code:6014,name:"InvokingProgramNotProvided",msg:"InvokingProgramNotProvided"},{code:6015,name:"InvalidCapacity",msg:"InvalidCapacity"},{code:6016,name:"InvalidMerkleTreeOwner",msg:"InvalidMerkleTreeOwner"},{code:6017,name:"ProofIsNone",msg:"ProofIsNone"},{code:6018,name:"ProofIsSome",msg:"Proof is some but no input compressed accounts or new addresses provided."},{code:6019,name:"EmptyInputs",msg:"EmptyInputs"},{code:6020,name:"CpiContextAccountUndefined",msg:"CpiContextAccountUndefined"},{code:6021,name:"CpiContextEmpty",msg:"CpiContextEmpty"},{code:6022,name:"CpiContextMissing",msg:"CpiContextMissing"},{code:6023,name:"DecompressionRecipientDefined",msg:"DecompressionRecipientDefined"},{code:6024,name:"SolPoolPdaDefined",msg:"SolPoolPdaDefined"},{code:6025,name:"AppendStateFailed",msg:"AppendStateFailed"},{code:6026,name:"InstructionNotCallable",msg:"The instruction is not callable"},{code:6027,name:"CpiContextFeePayerMismatch",msg:"CpiContextFeePayerMismatch"},{code:6028,name:"CpiContextAssociatedMerkleTreeMismatch",msg:"CpiContextAssociatedMerkleTreeMismatch"},{code:6029,name:"NoInputs",msg:"NoInputs"},{code:6030,name:"InputMerkleTreeIndicesNotInOrder",msg:"Input merkle tree indices are not in ascending order."},{code:6031,name:"OutputMerkleTreeIndicesNotInOrder",msg:"Output merkle tree indices are not in ascending order."},{code:6032,name:"OutputMerkleTreeNotUnique"},{code:6033,name:"DataFieldUndefined"},{code:6034,name:"ReadOnlyAddressAlreadyExists"},{code:6035,name:"ReadOnlyAccountDoesNotExist"},{code:6036,name:"HashChainInputsLenghtInconsistent"},{code:6037,name:"InvalidAddressTreeHeight"},{code:6038,name:"InvalidStateTreeHeight"}]},exports.INSERT_INTO_QUEUES_DISCRIMINATOR=oe,exports.INVOKE_CPI_DISCRIMINATOR=ee,exports.INVOKE_CPI_WITH_ACCOUNT_INFO_DISCRIMINATOR=re,exports.INVOKE_CPI_WITH_READ_ONLY_DISCRIMINATOR=te,exports.INVOKE_DISCRIMINATOR=Y,exports.InAccountLayout=vt,exports.IndexedArray=vo,exports.IndexedElement=go,exports.IndexedElementBundle=wo,exports.InsertAddressInputLayout=Ot,exports.InsertNullifierInputLayout=Pt,exports.InstructionDataInvokeCpiLayout=mt,exports.InstructionDataInvokeCpiWithReadOnlyLayout=It,exports.InstructionDataInvokeLayout=ht,exports.LatestNonVotingSignaturesResult=_n,exports.LatestNonVotingSignaturesResultPaginated=Pn,exports.LightSystemProgram=fo,exports.LookupTableError=class extends ks{},exports.MerkleContextLayout=lt,exports.MerkleProofResult=On,exports.MerkleProofResultV2=Ln,exports.MerkleTree=xo,exports.MerkleTreeError=class extends ks{},exports.MerkleTreeSequenceNumberLayout=Lt,exports.MultipleCompressedAccountsResult=In,exports.MultipleCompressedAccountsResultV2=En,exports.MultipleMerkleProofsResult=Fn,exports.MultipleMerkleProofsResultV2=Kn,exports.NativeBalanceResult=Wn,exports.NewAddressParamsAssignedPackedLayout=gt,exports.NewAddressParamsLayout=dt,exports.NewAddressProofResult=Bn,exports.PackedAccounts=Gr,exports.PackedMerkleContextLayout=wt,exports.PackedReadOnlyAddressLayout=xt,exports.PackedReadOnlyCompressedAccountLayout=bt,exports.ProofError=class extends ks{},exports.PublicTransactionEventLayout=St,exports.RootIndexResultV2=Rn,exports.Rpc=ps,exports.RpcError=class extends ks{},exports.STATE_MERKLE_TREE_NETWORK_FEE=Ye,exports.STATE_MERKLE_TREE_ROLLOVER_FEE=Je,exports.SelectInUtxosError=class extends ks{},exports.SignatureListResult=Qn,exports.SignatureListWithCursorResult=Jn,exports.SignatureSource=ts,exports.SlotResult=Cn,exports.SystemAccountMetaConfig=Qr,exports.TRANSACTION_MERKLE_TREE_ROLLOVER_THRESHOLD=Qe,exports.TestRpc=ms,exports.TokenBalanceListResult=jn,exports.TokenBalanceListResultV2=zn,exports.TokenBalanceResult=$n,exports.TokenDataResult=vn,exports.UTXO_MERGE_MAXIMUM=10,exports.UTXO_MERGE_THRESHOLD=20,exports.UtilsError=class extends ks{},exports.UtxoError=class extends ks{},exports.ValidityProofResult=Dn,exports.ValidityProofResultV2=qn,exports.accountCompressionProgram=ie,exports.addressQueue=Me,exports.addressTree=Te,exports.airdropSol=async function({connection:e,lamports:t,recipientPublicKey:r}){const o=await e.requestAirdrop(r,t);return await zr(e,o),o},exports.assertBetaEnabled=Z,exports.batchAddressTree=$e,exports.batchCpiContext1=Oe,exports.batchCpiContext2=Ne,exports.batchCpiContext3=Ve,exports.batchCpiContext4=Fe,exports.batchCpiContext5=We,exports.batchMerkleTree=je,exports.batchMerkleTree1=_e,exports.batchMerkleTree2=Le,exports.batchMerkleTree3=Re,exports.batchMerkleTree4=Ue,exports.batchMerkleTree5=Ke,exports.batchQueue=ze,exports.batchQueue1=Pe,exports.batchQueue2=Be,exports.batchQueue3=De,exports.batchQueue4=qe,exports.batchQueue5=He,exports.bn=st,exports.bufToDecStr=e=>ot(e).toString(),exports.buildAndSignTx=ao,exports.buildTx=no,exports.byteArrayToKeypair=function(t){return e.Keypair.fromSecretKey(Uint8Array.from(t))},exports.calculateComputeUnitPrice=function(e,t){return Math.ceil(1e6*e/t)},exports.checkValidityProofShape=e=>{if(32!==e.a.length||64!==e.b.length||32!==e.c.length)throw new Error("ValidityProof has invalid shape")},exports.compress=async function(t,r,o,n,s,i){const{blockhash:a}=await t.getLatestBlockhash();s||(s=lo(await t.getStateTreeInfos()));const u=await fo.compress({payer:r.publicKey,toAddress:n,lamports:o,outputStateTreeInfo:s}),c=ao([e.ComputeBudgetProgram.setComputeUnitLimit({units:1e6}),u],r,a,[]);return await so(t,c,i)},exports.confirmConfig={commitment:"confirmed",preflightCommitment:"confirmed"},exports.confirmTransaction=zr,exports.confirmTx=io,exports.convertInvokeCpiWithReadOnlyToInvoke=Fr,exports.convertMerkleProofsWithContextToHex=us,exports.convertNonInclusionMerkleProofInputsToHex=cs,exports.convertToPublicTransactionEvent=Nt,exports.cpiContext2Pubkey=ke,exports.cpiContextPubkey=Ee,exports.createAccount=async function(t,r,o,n,s,i,a){const{blockhash:u}=await t.getLatestBlockhash(),c=null!=s?s:pe(),{tree:l,queue:d}=c,h=c.treeType===exports.TreeType.AddressV2;if(j.isV2()||h)throw new Error("You are using V2. create-account/create-address is only supported via CPI.");const p=Kr(o,n),m=Hr(p,l);i||(i=lo(await t.getStateTreeInfos()));const f=await t.getValidityProofV0(void 0,[{address:st(m.toBytes()),tree:l,queue:d}]),y={seed:p,addressMerkleTreeRootIndex:f.rootIndices[0],addressMerkleTreePubkey:f.treeInfos[0].tree,addressQueuePubkey:f.treeInfos[0].queue},g=await fo.createAccount({payer:r.publicKey,newAddressParams:y,newAddress:Array.from(m.toBytes()),recentValidityProof:f.compressedProof,programId:n,outputStateTreeInfo:i}),w=ao([e.ComputeBudgetProgram.setComputeUnitLimit({units:1e6}),g],r,u,[]);return await so(t,w,a)},exports.createAccountWithLamports=async function(t,r,o,n,s,i,a,u){n=st(n);const c=await t.getCompressedAccountsByOwner(r.publicKey),[l]=yo(c.items,n),{blockhash:d}=await t.getLatestBlockhash(),h=null!=i?i:pe(),{tree:p}=h,m=h.treeType===exports.TreeType.AddressV2;if(j.isV2()||m)throw new Error("You are using V2. create-account/create-address is only supported via CPI.");const f=Kr(o,s),y=Hr(f,p),g=await t.getValidityProof(l.map((e=>e.hash)),[st(y.toBytes())]),w={seed:f,addressMerkleTreeRootIndex:g.rootIndices[g.rootIndices.length-1],addressMerkleTreePubkey:g.treeInfos[g.treeInfos.length-1].tree,addressQueuePubkey:g.treeInfos[g.treeInfos.length-1].queue},v=await fo.createAccount({payer:r.publicKey,newAddressParams:w,newAddress:Array.from(y.toBytes()),recentValidityProof:g.compressedProof,inputCompressedAccounts:l,inputStateRootIndices:g.rootIndices,outputStateTreeInfo:a}),x=ao([e.ComputeBudgetProgram.setComputeUnitLimit({units:1e6}),v],r,d,[]);return await so(t,x,u)},exports.createBN254=ot,exports.createCompressedAccountLegacy=it,exports.createCompressedAccountMeta=(e,t,r,o)=>({treeInfo:e,outputStateTreeIndex:t,address:null!=r?r:null,lamports:null!=o?o:null}),exports.createCompressedAccountWithMerkleContextLegacy=at,exports.createMerkleContextLegacy=ut,exports.createRpc=function(t,r,o,n){let s;if(t)if("string"==typeof t)s=t,r=r||s,o=o||s;else{if(!(t instanceof e.Connection))throw new Error("Invalid endpoint or connection type");s=t.rpcEndpoint,r=r||s,o=o||s}else s="http://127.0.0.1:8899",r=r||"http://127.0.0.1:8784",o=o||"http://127.0.0.1:3001";var i;return i=s.toLowerCase().includes("devnet"),rs=i,new ps(s,r,o,n)},exports.createRpcResult=ln,exports.createStateTreeLookupTable=async function({connection:t,payer:r,authority:o,recentSlot:n}){const[s,i]=e.AddressLookupTableProgram.createLookupTable({payer:r.publicKey,authority:o.publicKey,recentSlot:n}),a=ao([s],r,(await t.getLatestBlockhash()).blockhash,Zr(r,[o]));return{address:i,txId:await so(t,a)}},exports.decodeInstructionDataInvoke=At,exports.decodeInstructionDataInvokeCpi=Tt,exports.decodeInstructionDataInvokeCpiWithReadOnly=Et,exports.decodePublicTransactionEvent=Ct,exports.decompress=async function(t,r,o,n,s){const i=(await t.getCompressedAccountsByOwner(r.publicKey)).items;o=st(o);const a=po(i);if(o.gt(a))throw new Error(`Not enough compressed lamports. Expected ${o}, got ${a}`);const u=await t.getValidityProof(i.map((e=>st(e.hash)))),{blockhash:c}=await t.getLatestBlockhash(),l=await fo.decompress({payer:r.publicKey,toAddress:n,inputCompressedAccounts:i,recentValidityProof:u.compressedProof,recentInputStateRootIndices:u.rootIndices,lamports:o}),d=ao([e.ComputeBudgetProgram.setComputeUnitLimit({units:1e6}),l],r,c,[]);return await so(t,d,s)},exports.dedupeSigner=Zr,exports.deepEqual=function e(t,r){if(typeof t!=typeof r)return console.log(`Type mismatch: ${typeof t} !== ${typeof r}`),0;if(t instanceof W&&r instanceof W)return t.eq(r);if("object"==typeof t&&null!==t&&null!==r){const o=Object.keys(t),n=Object.keys(r);if(o.length!==n.length)return console.log(`Key length mismatch: ${o.length} !== ${n.length}`),0;for(const s of o){if(!n.includes(s))return console.log(`Key ${s} not found in value`),0;if(!e(t[s],r[s]))return console.log(`Value mismatch at key ${s}`),0}return 1}return t!==r&&console.log(`Value mismatch: ${t} !== ${r}`),t===r},exports.defaultStateTreeLookupTables=le,exports.defaultStaticAccounts=()=>[new e.PublicKey(ae()),new e.PublicKey(ne),new e.PublicKey(ie),new e.PublicKey(ue())],exports.defaultStaticAccountsStruct=ce,exports.defaultTestStateTreeAccounts=fe,exports.defaultTestStateTreeAccounts2=()=>({nullifierQueue2:new e.PublicKey(Ce),merkleTree2:new e.PublicKey(Se)}),exports.deriveAddress=function(e,t,r){const o=j.isV2();if(void 0===r){if(o)throw new Error("deriveAddress: programId is required in V2 mode. Pass programId as the third argument. If you need V1 behavior, set LIGHT_PROTOCOL_VERSION=V1.");return Hr(e,t)}if(!o)throw new Error("deriveAddress: programId must not be passed in V1 mode. Omit programId from deriveAddress. If you need V2 behavior, set LIGHT_PROTOCOL_VERSION=V2.");return $r(e,t,r)},exports.deriveAddressLegacy=Hr,exports.deriveAddressSeed=function(e,t){const r=j.isV2();if(void 0!==t){if(r)throw new Error("deriveAddressSeed: programId must not be passed in V2 mode. For V2, omit programId here and pass it to deriveAddress instead. If you need V1 behavior, set LIGHT_PROTOCOL_VERSION=V1.");return Kr(e,t)}if(!r)throw new Error("deriveAddressSeed: programId is required in V1 mode. Pass programId as the second argument. If you need V2 behavior, set LIGHT_PROTOCOL_VERSION=V2.");return Wr(e)},exports.deriveAddressSeedLegacy=Kr,exports.deriveAddressSeedV2=Wr,exports.deriveAddressV2=$r,exports.deserializeAppendNullifyCreateAddressInputsIndexer=Bt,exports.encodeBN254toBase58=nt,exports.encodeInstructionDataInvoke=pt,exports.encodePublicTransactionEvent=function(e){const r=t.Buffer.alloc(1e3),o=St.encode(e,r);return r.slice(0,o)},exports.extendStateTreeLookupTable=async function({connection:t,tableAddress:r,newStateTreeAddresses:o,newQueueAddresses:n,newCpiContextAddresses:s,payer:i,authority:a}){const u=await t.getAddressLookupTable(r);if(!u.value)throw new Error("Lookup table not found");if(u.value.state.addresses.length%3!=0)throw new Error("Lookup table must have a multiple of 3 addresses");if(o.length!==n.length||o.length!==s.length)throw new Error("Same number of newStateTreeAddresses, newQueueAddresses, and newCpiContextAddresses required");const c=ao([e.AddressLookupTableProgram.extendLookupTable({payer:i.publicKey,authority:a.publicKey,lookupTable:r,addresses:o.flatMap(((e,t)=>[e,n[t],s[t]]))})],i,(await t.getLatestBlockhash()).blockhash,Zr(i,[a]));return{tableAddress:r,txId:await so(t,c)}},exports.featureFlags=j,exports.getAccountCompressionAuthority=ue,exports.getAllStateTreeInfos=ho,exports.getBatchAddressTreeInfo=me,exports.getCompressedTokenAccountByHashTest=Po,exports.getCompressedTokenAccounts=Co,exports.getCompressedTokenAccountsByDelegateTest=_o,exports.getCompressedTokenAccountsByOwnerTest=ko,exports.getConnection=function(){return new e.Connection("http://127.0.0.1:8899","confirmed")},exports.getDefaultAddressSpace=he,exports.getDefaultAddressTreeInfo=pe,exports.getIndexOrAdd=Rt,exports.getLightSystemAccountMetas=function(e){return j.isV2()?Xr(e):Jr(e)},exports.getLightSystemAccountMetasLegacy=Jr,exports.getLightSystemAccountMetasV2=Xr,exports.getOutputQueue=function(e){var t,r;return null!==(r=null===(t=e.treeInfo.nextTreeInfo)||void 0===t?void 0:t.queue)&&void 0!==r?r:e.treeInfo.queue},exports.getOutputTreeInfo=function(e){var t;return null!==(t=e.treeInfo.nextTreeInfo)&&void 0!==t?t:e.treeInfo},exports.getParsedEvents=bo,exports.getPublicInputHash=function(e,t,r,o){const n=ls(e.map((e=>e.root)),t,o),s=r.map((e=>e.value)),i=ls(r.map((e=>e.root)),s,o);return i.isZero()?n.isZero()?ls([n],[i],o):n:i},exports.getRegisteredProgramPda=ae,exports.getStateTreeInfoByPubkey=uo,exports.getTestKeypair=xs,exports.getTestRpc=async function(e,t="http://127.0.0.1:8899",r="http://127.0.0.1:8784",o="http://127.0.0.1:3001",n,s=0){return new ms(t,e,r,o,void 0,{depth:n||fe().merkleTreeHeight,log:s})},exports.getTreeInfoByPubkey=co,exports.hashToBn254FieldSizeBe=Vr,exports.hashvToBn254FieldSizeBe=qr,exports.hashvToBn254FieldSizeBeU8Array=Ur,exports.invokeAccountsLayout=Mt,exports.isDevnetCompat=function(){return rs},exports.isLocalTest=de,exports.isSmallerThanBn254FieldSizeBe=Rr,exports.jsonRpcResult=hn,exports.jsonRpcResultAndContext=pn,exports.lightSystemProgram=se,exports.localTestActiveStateTreeInfos=Ze,exports.mergeSignatures=hs,exports.merkleTree2Pubkey=Se,exports.merkletreePubkey=Ae,exports.negateAndCompressProof=eo,exports.newAccountWithLamports=async function(e,t=1e9,r){(void 0===r||r>255)&&(r=256);const o=xs(r),n=await e.requestAirdrop(o.publicKey,t);return await io(e,n),o},exports.noopProgram=ne,exports.nullifiedStateTreeLookupTableDevnet=be,exports.nullifiedStateTreeLookupTableMainnet=ve,exports.nullifierQueue2Pubkey=Ce,exports.nullifierQueuePubkey=Ie,exports.nullifyLookupTable=async function({connection:t,fullStateTreeAddress:r,nullifyLookupTableAddress:o,stateTreeLookupTableAddress:n,payer:s,authority:i}){const a=await t.getAddressLookupTable(n);if(!a.value)throw console.log("stateTreeLookupTable",a),new Error("State tree lookup table not found");if(!a.value.state.addresses.map((e=>e.toBase58())).includes(r.toBase58()))throw console.log("fullStateTreeAddress",r),console.log("stateTreeLookupTable.value.state.addresses",a.value.state.addresses),new Error("State tree address not found in lookup table. Pass correct address or stateTreeLookupTable");const u=await t.getAddressLookupTable(o);if(!u.value)throw new Error("Nullify table not found");if(u.value.state.addresses.map((e=>e.toBase58())).includes(r.toBase58()))throw new Error("Address already exists in nullify lookup table");const c=ao([e.AddressLookupTableProgram.extendLookupTable({payer:s.publicKey,authority:i.publicKey,lookupTable:o,addresses:[r]})],s,(await t.getLatestBlockhash()).blockhash,Zr(s,[i]));return{txId:await so(t,c)}},exports.packCompressedAccounts=Ut,exports.packDecompressAccountsIdempotent=async function(e,t,r,o){const n=[],s=new Map,i=(e,t)=>{const r=e.toBase58();if(!s.has(r)){const o=n.length;return n.push({pubkey:e,isSigner:0,isWritable:t}),s.set(r,o),o}return s.get(r)},a=r.map((e=>{const t=i(e.treeInfo.tree,1),r=i(e.treeInfo.queue,1);return{[e.key]:e.data,merkleContext:{merkleTreePubkeyIndex:t,queuePubkeyIndex:r}}})),u=n.length;return o.forEach((e=>{i(e,1)})),{proofOption:{0:t.compressedProof},compressedAccounts:a,systemAccountsOffset:u,remainingAccounts:n}},exports.packNewAddressParams=jr,exports.packTreeInfos=function(e,t,r){const o=e.slice(),n=[],s=[];let i=-1;if(0===t.length&&0===r.length)return{stateTrees:void 0,addressTrees:s};if(t.forEach((e=>{const t=Rt(o,e.treeInfo.tree),r=Rt(o,e.treeInfo.queue);n.push({rootIndex:e.rootIndex,merkleTreePubkeyIndex:t,queuePubkeyIndex:r,leafIndex:e.leafIndex,proveByIndex:e.proveByIndex})})),n.length>0){const e=t[0].treeInfo.nextTreeInfo||t[0].treeInfo;let r=e.tree;if(e.treeType===exports.TreeType.StateV2){if(!j.isV2())throw new Error("V2 trees are not supported yet");r=e.queue}i=Rt(o,r)}return r.forEach((e=>{const t=Rt(o,e.treeInfo.tree),r=Rt(o,e.treeInfo.queue);s.push({rootIndex:e.rootIndex,addressMerkleTreePubkeyIndex:t,addressQueuePubkeyIndex:r})})),{stateTrees:n.length>0?{packedTreeInfos:n,outputTreeIndex:i}:void 0,addressTrees:s}},exports.padOutputStateMerkleTrees=Dt,exports.parseAccountData=os,exports.parseEvents=Io,exports.parseLightTransaction=Ao,exports.parsePublicTransactionEventWithIdl=Eo,exports.parseTokenLayoutWithIdl=So,exports.pickRandomTreeAndQueue=function(e){const t=e.length,r=Math.floor(Math.random()*t);let o;if(void 0!==r){if(r<0||r>=e.length)throw new Error(`Index ${r} out of bounds for infos array of length ${e.length}`);o=r}else o=Math.floor(Math.random()*e.length);return e[o]},exports.pipe=function(e,...t){return r=>t.reduce(((e,t)=>t(e)),e(r))},exports.placeholderValidityProof=()=>({a:Array.from({length:32},((e,t)=>t+1)),b:Array.from({length:64},((e,t)=>t+1)),c:Array.from({length:32},((e,t)=>t+1))}),exports.proofFromJsonStruct=Yr,exports.proverRequest=as,exports.pushUniqueItems=function(e,t){e.forEach((e=>{t.includes(e)||t.push(e)}))},exports.rpcRequest=is,exports.selectMinCompressedSolAccountsForTransfer=yo,exports.selectStateTreeInfo=lo,exports.sendAndConfirmTx=so,exports.sleep=function(e){return new Promise((t=>setTimeout(t,e)))},exports.stateTreeLookupTableDevnet=xe,exports.stateTreeLookupTableMainnet=we,exports.sumUpLamports=po,exports.toAccountMetas=Vt,exports.toArray=e=>Array.isArray(e)?e:[e],exports.toCamelCase=Dr,exports.toHex=Nr,exports.toUnixTimestamp=e=>new Date(e).getTime(),exports.transfer=async function(t,r,o,n,s,i){var a;let u=st(0);const c=[];let l;for(o=st(o);u.lt(o);){const e={filters:void 0,dataSlice:void 0,cursor:l,limit:st(1e3)},r=await t.getCompressedAccountsByOwner(n.publicKey,e);for(const e of r.items)e.lamports.gt(st(0))&&(c.push(e),u=u.add(e.lamports));if(l=null!==(a=r.cursor)&&void 0!==a?a:void 0,r.items.length<1e3||u.gte(o))break}if(u.lt(o))throw new Error(`Insufficient balance for transfer. Required: ${o.toString()}, available: ${u.toString()}`);const[d]=yo(c,o),h=await t.getValidityProof(d.map((e=>st(e.hash)))),p=await fo.transfer({payer:r.publicKey,inputCompressedAccounts:d,toAddress:s,lamports:o,recentInputStateRootIndices:h.rootIndices,recentValidityProof:h.compressedProof}),{blockhash:m}=await t.getLatestBlockhash(),f=ao([e.ComputeBudgetProgram.setComputeUnitLimit({units:35e4}),p],r,m);return await so(t,f,i)},exports.validateNumbers=$t,exports.validateNumbersForInclusionProof=Ht,exports.validateNumbersForNonInclusionProof=Wt,exports.validateNumbersForProof=Kt,exports.validateSameOwner=Ft,exports.validateSufficientBalance=qt,exports.versionedEndpoint=G,exports.wrapBigNumbersAsStrings=ss;
2
2
  //# sourceMappingURL=index.cjs.map