11 lines
694 KiB
JavaScript
11 lines
694 KiB
JavaScript
var snarkjs=function(A){"use strict";const I=[0,1,2,2,3,3,3,3,4,4,4,4,4,4,4,4];function t(A,I){return I&&10!=I?16==I?"0x"==A.slice(0,2)?BigInt(A):BigInt("0x"+A):void 0:BigInt(A)}const i=t;function g(A,I){return BigInt(A)<<BigInt(I)}function e(A,I){return BigInt(A)>>BigInt(I)}const C=g,n=e;var Q=Object.freeze({__proto__:null,fromString:t,e:i,fromArray:function(A,I){let t=BigInt(0);I=BigInt(I);for(let i=0;i<A.length;i++)t=t*I+BigInt(A[i]);return t},bitLength:function(A){const t=A.toString(16);return 4*(t.length-1)+I[parseInt(t[0],16)]},isNegative:function(A){return BigInt(A)<BigInt(0)},isZero:function(A){return!A},shiftLeft:g,shiftRight:e,shl:C,shr:n,isOdd:function(A){return(BigInt(A)&BigInt(1))==BigInt(1)},naf:function(A){let I=BigInt(A);const t=[];for(;I;){if(I&BigInt(1)){const A=2-Number(I%BigInt(4));t.push(A),I-=BigInt(A)}else t.push(0);I>>=BigInt(1)}return t},bits:function(A){let I=BigInt(A);const t=[];for(;I;)I&BigInt(1)?t.push(1):t.push(0),I>>=BigInt(1);return t},toNumber:function(A){if(A>BigInt(Number.MAX_SAFE_INTEGER))throw new Error("Number too big");return Number(A)},toArray:function(A,I){const t=[];let i=BigInt(A);for(I=BigInt(I);i;)t.unshift(Number(i%I)),i/=I;return t},add:function(A,I){return BigInt(A)+BigInt(I)},sub:function(A,I){return BigInt(A)-BigInt(I)},neg:function(A){return-BigInt(A)},mul:function(A,I){return BigInt(A)*BigInt(I)},square:function(A){return BigInt(A)*BigInt(A)},pow:function(A,I){return BigInt(A)**BigInt(I)},exp:function(A,I){return BigInt(A)**BigInt(I)},abs:function(A){return BigInt(A)>=0?BigInt(A):-BigInt(A)},div:function(A,I){return BigInt(A)/BigInt(I)},mod:function(A,I){return BigInt(A)%BigInt(I)},eq:function(A,I){return BigInt(A)==BigInt(I)},neq:function(A,I){return BigInt(A)!=BigInt(I)},lt:function(A,I){return BigInt(A)<BigInt(I)},gt:function(A,I){return BigInt(A)>BigInt(I)},leq:function(A,I){return BigInt(A)<=BigInt(I)},geq:function(A,I){return BigInt(A)>=BigInt(I)},band:function(A,I){return BigInt(A)&BigInt(I)},bor:function(A,I){return BigInt(A)|BigInt(I)},bxor:function(A,I){return BigInt(A)^BigInt(I)},land:function(A,I){return BigInt(A)&&BigInt(I)},lor:function(A,I){return BigInt(A)||BigInt(I)},lnot:function(A){return!BigInt(A)}}),B="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function r(A){var I={exports:{}};return A(I,I.exports),I.exports}var o=r((function(A){var I=function(A){var t=1e7,i=9007199254740992,g=E(i),e="0123456789abcdefghijklmnopqrstuvwxyz",C="function"==typeof BigInt;function n(A,I,t,i){return void 0===A?n[0]:void 0!==I&&(10!=+I||t)?O(A,I,t,i):z(A)}function Q(A,I){this.value=A,this.sign=I,this.isSmall=!1}function B(A){this.value=A,this.sign=A<0,this.isSmall=!0}function r(A){this.value=A}function o(A){return-i<A&&A<i}function E(A){return A<1e7?[A]:A<1e14?[A%1e7,Math.floor(A/1e7)]:[A%1e7,Math.floor(A/1e7)%1e7,Math.floor(A/1e14)]}function a(A){s(A);var I=A.length;if(I<4&&U(A,g)<0)switch(I){case 0:return 0;case 1:return A[0];case 2:return A[0]+A[1]*t;default:return A[0]+(A[1]+A[2]*t)*t}return A}function s(A){for(var I=A.length;0===A[--I];);A.length=I+1}function h(A){for(var I=new Array(A),t=-1;++t<A;)I[t]=0;return I}function f(A){return A>0?Math.floor(A):Math.ceil(A)}function w(A,I){var i,g,e=A.length,C=I.length,n=new Array(e),Q=0,B=t;for(g=0;g<C;g++)Q=(i=A[g]+I[g]+Q)>=B?1:0,n[g]=i-Q*B;for(;g<e;)Q=(i=A[g]+Q)===B?1:0,n[g++]=i-Q*B;return Q>0&&n.push(Q),n}function D(A,I){return A.length>=I.length?w(A,I):w(I,A)}function c(A,I){var i,g,e=A.length,C=new Array(e),n=t;for(g=0;g<e;g++)i=A[g]-n+I,I=Math.floor(i/n),C[g]=i-I*n,I+=1;for(;I>0;)C[g++]=I%n,I=Math.floor(I/n);return C}function u(A,I){var i,g,e=A.length,C=I.length,n=new Array(e),Q=0,B=t;for(i=0;i<C;i++)(g=A[i]-Q-I[i])<0?(g+=B,Q=1):Q=0,n[i]=g;for(i=C;i<e;i++){if(!((g=A[i]-Q)<0)){n[i++]=g;break}g+=B,n[i]=g}for(;i<e;i++)n[i]=A[i];return s(n),n}function l(A,I,i){var g,e,C=A.length,n=new Array(C),r=-I,o=t;for(g=0;g<C;g++)e=A[g]+r,r=Math.floor(e/o),e%=o,n[g]=e<0?e+o:e;return"number"==typeof(n=a(n))?(i&&(n=-n),new B(n)):new Q(n,i)}function y(A,I){var i,g,e,C,n=A.length,Q=I.length,B=h(n+Q),r=t;for(e=0;e<n;++e){C=A[e];for(var o=0;o<Q;++o)i=C*I[o]+B[e+o],g=Math.floor(i/r),B[e+o]=i-g*r,B[e+o+1]+=g}return s(B),B}function p(A,I){var i,g,e=A.length,C=new Array(e),n=t,Q=0;for(g=0;g<e;g++)i=A[g]*I+Q,Q=Math.floor(i/n),C[g]=i-Q*n;for(;Q>0;)C[g++]=Q%n,Q=Math.floor(Q/n);return C}function F(A,I){for(var t=[];I-- >0;)t.push(0);return t.concat(A)}function M(A,I){var t=Math.max(A.length,I.length);if(t<=30)return y(A,I);t=Math.ceil(t/2);var i=A.slice(t),g=A.slice(0,t),e=I.slice(t),C=I.slice(0,t),n=M(g,C),Q=M(i,e),B=M(D(g,i),D(C,e)),r=D(D(n,F(u(u(B,n),Q),t)),F(Q,2*t));return s(r),r}function m(A,I,i){return new Q(A<t?p(I,A):y(I,E(A)),i)}function d(A){var I,i,g,e,C=A.length,n=h(C+C),Q=t;for(g=0;g<C;g++){i=0-(e=A[g])*e;for(var B=g;B<C;B++)I=e*A[B]*2+n[g+B]+i,i=Math.floor(I/Q),n[g+B]=I-i*Q;n[g+C]=i}return s(n),n}function G(A,I){var t,i,g,e,C=A.length,n=h(C);for(g=0,t=C-1;t>=0;--t)g=(e=1e7*g+A[t])-(i=f(e/I))*I,n[t]=0|i;return[n,0|g]}function H(A,I){var i,g=z(I);if(C)return[new r(A.value/g.value),new r(A.value%g.value)];var e,o=A.value,w=g.value;if(0===w)throw new Error("Cannot divide by zero");if(A.isSmall)return g.isSmall?[new B(f(o/w)),new B(o%w)]:[n[0],A];if(g.isSmall){if(1===w)return[A,n[0]];if(-1==w)return[A.negate(),n[0]];var D=Math.abs(w);if(D<t){e=a((i=G(o,D))[0]);var c=i[1];return A.sign&&(c=-c),"number"==typeof e?(A.sign!==g.sign&&(e=-e),[new B(e),new B(c)]):[new Q(e,A.sign!==g.sign),new B(c)]}w=E(D)}var l=U(o,w);if(-1===l)return[n[0],A];if(0===l)return[n[A.sign===g.sign?1:-1],n[0]];e=(i=o.length+w.length<=200?function(A,I){var i,g,e,C,n,Q,B,r=A.length,o=I.length,E=t,s=h(I.length),f=I[o-1],w=Math.ceil(E/(2*f)),D=p(A,w),c=p(I,w);for(D.length<=r&&D.push(0),c.push(0),f=c[o-1],g=r-o;g>=0;g--){for(i=E-1,D[g+o]!==f&&(i=Math.floor((D[g+o]*E+D[g+o-1])/f)),e=0,C=0,Q=c.length,n=0;n<Q;n++)e+=i*c[n],B=Math.floor(e/E),C+=D[g+n]-(e-B*E),e=B,C<0?(D[g+n]=C+E,C=-1):(D[g+n]=C,C=0);for(;0!==C;){for(i-=1,e=0,n=0;n<Q;n++)(e+=D[g+n]-E+c[n])<0?(D[g+n]=e+E,e=0):(D[g+n]=e,e=1);C+=e}s[g]=i}return D=G(D,w)[0],[a(s),a(D)]}(o,w):function(A,I){for(var i,g,e,C,n,Q=A.length,B=I.length,r=[],o=[],E=t;Q;)if(o.unshift(A[--Q]),s(o),U(o,I)<0)r.push(0);else{e=o[(g=o.length)-1]*E+o[g-2],C=I[B-1]*E+I[B-2],g>B&&(e=(e+1)*E),i=Math.ceil(e/C);do{if(U(n=p(I,i),o)<=0)break;i--}while(i);r.push(i),o=u(o,n)}return r.reverse(),[a(r),a(o)]}(o,w))[0];var y=A.sign!==g.sign,F=i[1],M=A.sign;return"number"==typeof e?(y&&(e=-e),e=new B(e)):e=new Q(e,y),"number"==typeof F?(M&&(F=-F),F=new B(F)):F=new Q(F,M),[e,F]}function U(A,I){if(A.length!==I.length)return A.length>I.length?1:-1;for(var t=A.length-1;t>=0;t--)if(A[t]!==I[t])return A[t]>I[t]?1:-1;return 0}function b(A){var I=A.abs();return!I.isUnit()&&(!!(I.equals(2)||I.equals(3)||I.equals(5))||!(I.isEven()||I.isDivisibleBy(3)||I.isDivisibleBy(5))&&(!!I.lesser(49)||void 0))}function L(A,t){for(var i,g,e,C=A.prev(),n=C,Q=0;n.isEven();)n=n.divide(2),Q++;A:for(g=0;g<t.length;g++)if(!A.lesser(t[g])&&!(e=I(t[g]).modPow(n,A)).isUnit()&&!e.equals(C)){for(i=Q-1;0!=i;i--){if((e=e.square().mod(A)).isUnit())return!1;if(e.equals(C))continue A}return!1}return!0}Q.prototype=Object.create(n.prototype),B.prototype=Object.create(n.prototype),r.prototype=Object.create(n.prototype),Q.prototype.add=function(A){var I=z(A);if(this.sign!==I.sign)return this.subtract(I.negate());var t=this.value,i=I.value;return I.isSmall?new Q(c(t,Math.abs(i)),this.sign):new Q(D(t,i),this.sign)},Q.prototype.plus=Q.prototype.add,B.prototype.add=function(A){var I=z(A),t=this.value;if(t<0!==I.sign)return this.subtract(I.negate());var i=I.value;if(I.isSmall){if(o(t+i))return new B(t+i);i=E(Math.abs(i))}return new Q(c(i,Math.abs(t)),t<0)},B.prototype.plus=B.prototype.add,r.prototype.add=function(A){return new r(this.value+z(A).value)},r.prototype.plus=r.prototype.add,Q.prototype.subtract=function(A){var I=z(A);if(this.sign!==I.sign)return this.add(I.negate());var t=this.value,i=I.value;return I.isSmall?l(t,Math.abs(i),this.sign):function(A,I,t){var i;return U(A,I)>=0?i=u(A,I):(i=u(I,A),t=!t),"number"==typeof(i=a(i))?(t&&(i=-i),new B(i)):new Q(i,t)}(t,i,this.sign)},Q.prototype.minus=Q.prototype.subtract,B.prototype.subtract=function(A){var I=z(A),t=this.value;if(t<0!==I.sign)return this.add(I.negate());var i=I.value;return I.isSmall?new B(t-i):l(i,Math.abs(t),t>=0)},B.prototype.minus=B.prototype.subtract,r.prototype.subtract=function(A){return new r(this.value-z(A).value)},r.prototype.minus=r.prototype.subtract,Q.prototype.negate=function(){return new Q(this.value,!this.sign)},B.prototype.negate=function(){var A=this.sign,I=new B(-this.value);return I.sign=!A,I},r.prototype.negate=function(){return new r(-this.value)},Q.prototype.abs=function(){return new Q(this.value,!1)},B.prototype.abs=function(){return new B(Math.abs(this.value))},r.prototype.abs=function(){return new r(this.value>=0?this.value:-this.value)},Q.prototype.multiply=function(A){var I,i,g,e=z(A),C=this.value,B=e.value,r=this.sign!==e.sign;if(e.isSmall){if(0===B)return n[0];if(1===B)return this;if(-1===B)return this.negate();if((I=Math.abs(B))<t)return new Q(p(C,I),r);B=E(I)}return i=C.length,g=B.length,new Q(-.012*i-.012*g+15e-6*i*g>0?M(C,B):y(C,B),r)},Q.prototype.times=Q.prototype.multiply,B.prototype._multiplyBySmall=function(A){return o(A.value*this.value)?new B(A.value*this.value):m(Math.abs(A.value),E(Math.abs(this.value)),this.sign!==A.sign)},Q.prototype._multiplyBySmall=function(A){return 0===A.value?n[0]:1===A.value?this:-1===A.value?this.negate():m(Math.abs(A.value),this.value,this.sign!==A.sign)},B.prototype.multiply=function(A){return z(A)._multiplyBySmall(this)},B.prototype.times=B.prototype.multiply,r.prototype.multiply=function(A){return new r(this.value*z(A).value)},r.prototype.times=r.prototype.multiply,Q.prototype.square=function(){return new Q(d(this.value),!1)},B.prototype.square=function(){var A=this.value*this.value;return o(A)?new B(A):new Q(d(E(Math.abs(this.value))),!1)},r.prototype.square=function(A){return new r(this.value*this.value)},Q.prototype.divmod=function(A){var I=H(this,A);return{quotient:I[0],remainder:I[1]}},r.prototype.divmod=B.prototype.divmod=Q.prototype.divmod,Q.prototype.divide=function(A){return H(this,A)[0]},r.prototype.over=r.prototype.divide=function(A){return new r(this.value/z(A).value)},B.prototype.over=B.prototype.divide=Q.prototype.over=Q.prototype.divide,Q.prototype.mod=function(A){return H(this,A)[1]},r.prototype.mod=r.prototype.remainder=function(A){return new r(this.value%z(A).value)},B.prototype.remainder=B.prototype.mod=Q.prototype.remainder=Q.prototype.mod,Q.prototype.pow=function(A){var I,t,i,g=z(A),e=this.value,C=g.value;if(0===C)return n[1];if(0===e)return n[0];if(1===e)return n[1];if(-1===e)return g.isEven()?n[1]:n[-1];if(g.sign)return n[0];if(!g.isSmall)throw new Error("The exponent "+g.toString()+" is too large.");if(this.isSmall&&o(I=Math.pow(e,C)))return new B(f(I));for(t=this,i=n[1];!0&C&&(i=i.times(t),--C),0!==C;)C/=2,t=t.square();return i},B.prototype.pow=Q.prototype.pow,r.prototype.pow=function(A){var I=z(A),t=this.value,i=I.value,g=BigInt(0),e=BigInt(1),C=BigInt(2);if(i===g)return n[1];if(t===g)return n[0];if(t===e)return n[1];if(t===BigInt(-1))return I.isEven()?n[1]:n[-1];if(I.isNegative())return new r(g);for(var Q=this,B=n[1];(i&e)===e&&(B=B.times(Q),--i),i!==g;)i/=C,Q=Q.square();return B},Q.prototype.modPow=function(A,I){if(A=z(A),(I=z(I)).isZero())throw new Error("Cannot take modPow with modulus 0");var t=n[1],i=this.mod(I);for(A.isNegative()&&(A=A.multiply(n[-1]),i=i.modInv(I));A.isPositive();){if(i.isZero())return n[0];A.isOdd()&&(t=t.multiply(i).mod(I)),A=A.divide(2),i=i.square().mod(I)}return t},r.prototype.modPow=B.prototype.modPow=Q.prototype.modPow,Q.prototype.compareAbs=function(A){var I=z(A),t=this.value,i=I.value;return I.isSmall?1:U(t,i)},B.prototype.compareAbs=function(A){var I=z(A),t=Math.abs(this.value),i=I.value;return I.isSmall?t===(i=Math.abs(i))?0:t>i?1:-1:-1},r.prototype.compareAbs=function(A){var I=this.value,t=z(A).value;return(I=I>=0?I:-I)===(t=t>=0?t:-t)?0:I>t?1:-1},Q.prototype.compare=function(A){if(A===1/0)return-1;if(A===-1/0)return 1;var I=z(A),t=this.value,i=I.value;return this.sign!==I.sign?I.sign?1:-1:I.isSmall?this.sign?-1:1:U(t,i)*(this.sign?-1:1)},Q.prototype.compareTo=Q.prototype.compare,B.prototype.compare=function(A){if(A===1/0)return-1;if(A===-1/0)return 1;var I=z(A),t=this.value,i=I.value;return I.isSmall?t==i?0:t>i?1:-1:t<0!==I.sign?t<0?-1:1:t<0?1:-1},B.prototype.compareTo=B.prototype.compare,r.prototype.compare=function(A){if(A===1/0)return-1;if(A===-1/0)return 1;var I=this.value,t=z(A).value;return I===t?0:I>t?1:-1},r.prototype.compareTo=r.prototype.compare,Q.prototype.equals=function(A){return 0===this.compare(A)},r.prototype.eq=r.prototype.equals=B.prototype.eq=B.prototype.equals=Q.prototype.eq=Q.prototype.equals,Q.prototype.notEquals=function(A){return 0!==this.compare(A)},r.prototype.neq=r.prototype.notEquals=B.prototype.neq=B.prototype.notEquals=Q.prototype.neq=Q.prototype.notEquals,Q.prototype.greater=function(A){return this.compare(A)>0},r.prototype.gt=r.prototype.greater=B.prototype.gt=B.prototype.greater=Q.prototype.gt=Q.prototype.greater,Q.prototype.lesser=function(A){return this.compare(A)<0},r.prototype.lt=r.prototype.lesser=B.prototype.lt=B.prototype.lesser=Q.prototype.lt=Q.prototype.lesser,Q.prototype.greaterOrEquals=function(A){return this.compare(A)>=0},r.prototype.geq=r.prototype.greaterOrEquals=B.prototype.geq=B.prototype.greaterOrEquals=Q.prototype.geq=Q.prototype.greaterOrEquals,Q.prototype.lesserOrEquals=function(A){return this.compare(A)<=0},r.prototype.leq=r.prototype.lesserOrEquals=B.prototype.leq=B.prototype.lesserOrEquals=Q.prototype.leq=Q.prototype.lesserOrEquals,Q.prototype.isEven=function(){return 0==(1&this.value[0])},B.prototype.isEven=function(){return 0==(1&this.value)},r.prototype.isEven=function(){return(this.value&BigInt(1))===BigInt(0)},Q.prototype.isOdd=function(){return 1==(1&this.value[0])},B.prototype.isOdd=function(){return 1==(1&this.value)},r.prototype.isOdd=function(){return(this.value&BigInt(1))===BigInt(1)},Q.prototype.isPositive=function(){return!this.sign},B.prototype.isPositive=function(){return this.value>0},r.prototype.isPositive=B.prototype.isPositive,Q.prototype.isNegative=function(){return this.sign},B.prototype.isNegative=function(){return this.value<0},r.prototype.isNegative=B.prototype.isNegative,Q.prototype.isUnit=function(){return!1},B.prototype.isUnit=function(){return 1===Math.abs(this.value)},r.prototype.isUnit=function(){return this.abs().value===BigInt(1)},Q.prototype.isZero=function(){return!1},B.prototype.isZero=function(){return 0===this.value},r.prototype.isZero=function(){return this.value===BigInt(0)},Q.prototype.isDivisibleBy=function(A){var I=z(A);return!I.isZero()&&(!!I.isUnit()||(0===I.compareAbs(2)?this.isEven():this.mod(I).isZero()))},r.prototype.isDivisibleBy=B.prototype.isDivisibleBy=Q.prototype.isDivisibleBy,Q.prototype.isPrime=function(t){var i=b(this);if(i!==A)return i;var g=this.abs(),e=g.bitLength();if(e<=64)return L(g,[2,3,5,7,11,13,17,19,23,29,31,37]);for(var C=Math.log(2)*e.toJSNumber(),n=Math.ceil(!0===t?2*Math.pow(C,2):C),Q=[],B=0;B<n;B++)Q.push(I(B+2));return L(g,Q)},r.prototype.isPrime=B.prototype.isPrime=Q.prototype.isPrime,Q.prototype.isProbablePrime=function(t,i){var g=b(this);if(g!==A)return g;for(var e=this.abs(),C=t===A?5:t,n=[],Q=0;Q<C;Q++)n.push(I.randBetween(2,e.minus(2),i));return L(e,n)},r.prototype.isProbablePrime=B.prototype.isProbablePrime=Q.prototype.isProbablePrime,Q.prototype.modInv=function(A){for(var t,i,g,e=I.zero,C=I.one,n=z(A),Q=this.abs();!Q.isZero();)t=n.divide(Q),i=e,g=n,e=C,n=Q,C=i.subtract(t.multiply(C)),Q=g.subtract(t.multiply(Q));if(!n.isUnit())throw new Error(this.toString()+" and "+A.toString()+" are not co-prime");return-1===e.compare(0)&&(e=e.add(A)),this.isNegative()?e.negate():e},r.prototype.modInv=B.prototype.modInv=Q.prototype.modInv,Q.prototype.next=function(){var A=this.value;return this.sign?l(A,1,this.sign):new Q(c(A,1),this.sign)},B.prototype.next=function(){var A=this.value;return A+1<i?new B(A+1):new Q(g,!1)},r.prototype.next=function(){return new r(this.value+BigInt(1))},Q.prototype.prev=function(){var A=this.value;return this.sign?new Q(c(A,1),!0):l(A,1,this.sign)},B.prototype.prev=function(){var A=this.value;return A-1>-i?new B(A-1):new Q(g,!0)},r.prototype.prev=function(){return new r(this.value-BigInt(1))};for(var k=[1];2*k[k.length-1]<=t;)k.push(2*k[k.length-1]);var N=k.length,J=k[N-1];function S(A){return Math.abs(A)<=t}function v(A,t,i){t=z(t);for(var g=A.isNegative(),e=t.isNegative(),C=g?A.not():A,n=e?t.not():t,Q=0,B=0,r=null,o=null,E=[];!C.isZero()||!n.isZero();)Q=(r=H(C,J))[1].toJSNumber(),g&&(Q=J-1-Q),B=(o=H(n,J))[1].toJSNumber(),e&&(B=J-1-B),C=r[0],n=o[0],E.push(i(Q,B));for(var a=0!==i(g?1:0,e?1:0)?I(-1):I(0),s=E.length-1;s>=0;s-=1)a=a.multiply(J).add(I(E[s]));return a}Q.prototype.shiftLeft=function(A){var I=z(A).toJSNumber();if(!S(I))throw new Error(String(I)+" is too large for shifting.");if(I<0)return this.shiftRight(-I);var t=this;if(t.isZero())return t;for(;I>=N;)t=t.multiply(J),I-=N-1;return t.multiply(k[I])},r.prototype.shiftLeft=B.prototype.shiftLeft=Q.prototype.shiftLeft,Q.prototype.shiftRight=function(A){var I,t=z(A).toJSNumber();if(!S(t))throw new Error(String(t)+" is too large for shifting.");if(t<0)return this.shiftLeft(-t);for(var i=this;t>=N;){if(i.isZero()||i.isNegative()&&i.isUnit())return i;i=(I=H(i,J))[1].isNegative()?I[0].prev():I[0],t-=N-1}return(I=H(i,k[t]))[1].isNegative()?I[0].prev():I[0]},r.prototype.shiftRight=B.prototype.shiftRight=Q.prototype.shiftRight,Q.prototype.not=function(){return this.negate().prev()},r.prototype.not=B.prototype.not=Q.prototype.not,Q.prototype.and=function(A){return v(this,A,(function(A,I){return A&I}))},r.prototype.and=B.prototype.and=Q.prototype.and,Q.prototype.or=function(A){return v(this,A,(function(A,I){return A|I}))},r.prototype.or=B.prototype.or=Q.prototype.or,Q.prototype.xor=function(A){return v(this,A,(function(A,I){return A^I}))},r.prototype.xor=B.prototype.xor=Q.prototype.xor;var R=1<<30;function Y(A){var I=A.value,i="number"==typeof I?I|R:"bigint"==typeof I?I|BigInt(R):I[0]+I[1]*t|1073758208;return i&-i}function q(A,t){if(t.compareTo(A)<=0){var i=q(A,t.square(t)),g=i.p,e=i.e,C=g.multiply(t);return C.compareTo(A)<=0?{p:C,e:2*e+1}:{p:g,e:2*e}}return{p:I(1),e:0}}function x(A,I){return A=z(A),I=z(I),A.greater(I)?A:I}function P(A,I){return A=z(A),I=z(I),A.lesser(I)?A:I}function X(A,I){if(A=z(A).abs(),I=z(I).abs(),A.equals(I))return A;if(A.isZero())return I;if(I.isZero())return A;for(var t,i,g=n[1];A.isEven()&&I.isEven();)t=P(Y(A),Y(I)),A=A.divide(t),I=I.divide(t),g=g.multiply(t);for(;A.isEven();)A=A.divide(Y(A));do{for(;I.isEven();)I=I.divide(Y(I));A.greater(I)&&(i=I,I=A,A=i),I=I.subtract(A)}while(!I.isZero());return g.isUnit()?A:A.multiply(g)}Q.prototype.bitLength=function(){var A=this;return A.compareTo(I(0))<0&&(A=A.negate().subtract(I(1))),0===A.compareTo(I(0))?I(0):I(q(A,I(2)).e).add(I(1))},r.prototype.bitLength=B.prototype.bitLength=Q.prototype.bitLength;var O=function(A,I,t,i){t=t||e,A=String(A),i||(A=A.toLowerCase(),t=t.toLowerCase());var g,C=A.length,n=Math.abs(I),Q={};for(g=0;g<t.length;g++)Q[t[g]]=g;for(g=0;g<C;g++){if("-"!==(o=A[g])&&(o in Q&&Q[o]>=n)){if("1"===o&&1===n)continue;throw new Error(o+" is not a valid digit in base "+I+".")}}I=z(I);var B=[],r="-"===A[0];for(g=r?1:0;g<A.length;g++){var o;if((o=A[g])in Q)B.push(z(Q[o]));else{if("<"!==o)throw new Error(o+" is not a valid character");var E=g;do{g++}while(">"!==A[g]&&g<A.length);B.push(z(A.slice(E+1,g)))}}return Z(B,I,r)};function Z(A,I,t){var i,g=n[0],e=n[1];for(i=A.length-1;i>=0;i--)g=g.add(A[i].times(e)),e=e.times(I);return t?g.negate():g}function V(A,t){if((t=I(t)).isZero()){if(A.isZero())return{value:[0],isNegative:!1};throw new Error("Cannot convert nonzero numbers to base 0.")}if(t.equals(-1)){if(A.isZero())return{value:[0],isNegative:!1};if(A.isNegative())return{value:[].concat.apply([],Array.apply(null,Array(-A.toJSNumber())).map(Array.prototype.valueOf,[1,0])),isNegative:!1};var i=Array.apply(null,Array(A.toJSNumber()-1)).map(Array.prototype.valueOf,[0,1]);return i.unshift([1]),{value:[].concat.apply([],i),isNegative:!1}}var g=!1;if(A.isNegative()&&t.isPositive()&&(g=!0,A=A.abs()),t.isUnit())return A.isZero()?{value:[0],isNegative:!1}:{value:Array.apply(null,Array(A.toJSNumber())).map(Number.prototype.valueOf,1),isNegative:g};for(var e,C=[],n=A;n.isNegative()||n.compareAbs(t)>=0;){e=n.divmod(t),n=e.quotient;var Q=e.remainder;Q.isNegative()&&(Q=t.minus(Q).abs(),n=n.next()),C.push(Q.toJSNumber())}return C.push(n.toJSNumber()),{value:C.reverse(),isNegative:g}}function K(A,I,t){var i=V(A,I);return(i.isNegative?"-":"")+i.value.map((function(A){return function(A,I){return A<(I=I||e).length?I[A]:"<"+A+">"}(A,t)})).join("")}function j(A){if(o(+A)){var I=+A;if(I===f(I))return C?new r(BigInt(I)):new B(I);throw new Error("Invalid integer: "+A)}var t="-"===A[0];t&&(A=A.slice(1));var i=A.split(/e/i);if(i.length>2)throw new Error("Invalid integer: "+i.join("e"));if(2===i.length){var g=i[1];if("+"===g[0]&&(g=g.slice(1)),(g=+g)!==f(g)||!o(g))throw new Error("Invalid integer: "+g+" is not a valid exponent.");var e=i[0],n=e.indexOf(".");if(n>=0&&(g-=e.length-n-1,e=e.slice(0,n)+e.slice(n+1)),g<0)throw new Error("Cannot include negative exponent part for integers");A=e+=new Array(g+1).join("0")}if(!/^([0-9][0-9]*)$/.test(A))throw new Error("Invalid integer: "+A);if(C)return new r(BigInt(t?"-"+A:A));for(var E=[],a=A.length,h=a-7;a>0;)E.push(+A.slice(h,a)),(h-=7)<0&&(h=0),a-=7;return s(E),new Q(E,t)}function z(A){return"number"==typeof A?function(A){if(C)return new r(BigInt(A));if(o(A)){if(A!==f(A))throw new Error(A+" is not an integer.");return new B(A)}return j(A.toString())}(A):"string"==typeof A?j(A):"bigint"==typeof A?new r(A):A}Q.prototype.toArray=function(A){return V(this,A)},B.prototype.toArray=function(A){return V(this,A)},r.prototype.toArray=function(A){return V(this,A)},Q.prototype.toString=function(I,t){if(I===A&&(I=10),10!==I)return K(this,I,t);for(var i,g=this.value,e=g.length,C=String(g[--e]);--e>=0;)i=String(g[e]),C+="0000000".slice(i.length)+i;return(this.sign?"-":"")+C},B.prototype.toString=function(I,t){return I===A&&(I=10),10!=I?K(this,I,t):String(this.value)},r.prototype.toString=B.prototype.toString,r.prototype.toJSON=Q.prototype.toJSON=B.prototype.toJSON=function(){return this.toString()},Q.prototype.valueOf=function(){return parseInt(this.toString(),10)},Q.prototype.toJSNumber=Q.prototype.valueOf,B.prototype.valueOf=function(){return this.value},B.prototype.toJSNumber=B.prototype.valueOf,r.prototype.valueOf=r.prototype.toJSNumber=function(){return parseInt(this.toString(),10)};for(var W=0;W<1e3;W++)n[W]=z(W),W>0&&(n[-W]=z(-W));return n.one=n[1],n.zero=n[0],n.minusOne=n[-1],n.max=x,n.min=P,n.gcd=X,n.lcm=function(A,I){return A=z(A).abs(),I=z(I).abs(),A.divide(X(A,I)).multiply(I)},n.isInstance=function(A){return A instanceof Q||A instanceof B||A instanceof r},n.randBetween=function(A,I,i){A=z(A),I=z(I);var g=i||Math.random,e=P(A,I),C=x(A,I).subtract(e).add(1);if(C.isSmall)return e.add(Math.floor(g()*C));for(var Q=V(C,t).value,B=[],r=!0,o=0;o<Q.length;o++){var E=r?Q[o]:t,a=f(g()*E);B.push(a),a<E&&(r=!1)}return e.add(n.fromArray(B,t,!1))},n.fromArray=function(A,I,t){return Z(A.map(z),z(I||10),t)},n}();A.hasOwnProperty("exports")&&(A.exports=I)}));function E(A,I){return"string"==typeof A&&"0x"==A.slice(0,2)?o(A.slice(2),16):o(A,I)}const a=E;function s(A,I){return o(A).shiftLeft(I)}function h(A,I){return o(A).shiftRight(I)}const f=s,w=h;var D=Object.freeze({__proto__:null,fromString:E,e:a,fromArray:function(A,I){return o.fromArray(A,I)},bitLength:function(A){return o(A).bitLength()},isNegative:function(A){return o(A).isNegative()},isZero:function(A){return o(A).isZero()},shiftLeft:s,shiftRight:h,shl:f,shr:w,isOdd:function(A){return o(A).isOdd()},naf:function(A){let I=o(A);const t=[];for(;I.gt(o.zero);){if(I.isOdd()){const A=2-I.mod(4).toJSNumber();t.push(A),I=I.minus(A)}else t.push(0);I=I.shiftRight(1)}return t},bits:function(A){let I=o(A);const t=[];for(;I.gt(o.zero);)I.isOdd()?t.push(1):t.push(0),I=I.shiftRight(1);return t},toNumber:function(A){if(!A.lt(o("9007199254740992",10)))throw new Error("Number too big");return A.toJSNumber()},toArray:function(A,I){return o(A).toArray(I)},add:function(A,I){return o(A).add(o(I))},sub:function(A,I){return o(A).minus(o(I))},neg:function(A){return o.zero.minus(o(A))},mul:function(A,I){return o(A).times(o(I))},square:function(A){return o(A).square()},pow:function(A,I){return o(A).pow(o(I))},exp:function(A,I){return o(A).pow(o(I))},abs:function(A){return o(A).abs()},div:function(A,I){return o(A).divide(o(I))},mod:function(A,I){return o(A).mod(o(I))},eq:function(A,I){return o(A).eq(o(I))},neq:function(A,I){return o(A).neq(o(I))},lt:function(A,I){return o(A).lt(o(I))},gt:function(A,I){return o(A).gt(o(I))},leq:function(A,I){return o(A).leq(o(I))},geq:function(A,I){return o(A).geq(o(I))},band:function(A,I){return o(A).and(o(I))},bor:function(A,I){return o(A).or(o(I))},bxor:function(A,I){return o(A).xor(o(I))},land:function(A,I){return!o(A).isZero()&&!o(I).isZero()},lor:function(A,I){return!o(A).isZero()||!o(I).isZero()},lnot:function(A){return o(A).isZero()}});const c="function"==typeof BigInt;let u={};c?Object.assign(u,Q):Object.assign(u,D),u.toRprLE=function(A,I,t,i){const g="0000000"+t.toString(16),e=new Uint32Array(A.buffer,I,i/4),C=1+(4*(g.length-7)-1>>5);for(let A=0;A<C;A++)e[A]=parseInt(g.substring(g.length-8*A-8,g.length-8*A),16);for(let A=C;A<e.length;A++)e[A]=0;for(let I=4*e.length;I<i;I++)A[I]=u.toNumber(u.band(u.shiftRight(t,8*I),255))},u.toRprBE=function(A,I,t,i){const g="0000000"+t.toString(16),e=new DataView(A.buffer,A.byteOffset+I,i),C=1+(4*(g.length-7)-1>>5);for(let A=0;A<C;A++)e.setUint32(i-4*A-4,parseInt(g.substring(g.length-8*A-8,g.length-8*A),16),!1);for(let A=0;A<i/4-C;A++)e[A]=0},u.fromRprLE=function(A,I,t){t=t||A.byteLength,I=I||0;const i=new Uint32Array(A.buffer,I,t/4),g=new Array(t/4);return i.forEach(((A,I)=>g[g.length-I-1]=A.toString(16).padStart(8,"0"))),u.fromString(g.join(""),16)},u.fromRprBE=function(A,I,t){t=t||A.byteLength,I=I||0;const i=new DataView(A.buffer,A.byteOffset+I,t),g=new Array(t/4);for(let A=0;A<t/4;A++)g[A]=i.getUint32(4*A,!1).toString(16).padStart(8,"0");return u.fromString(g.join(""),16)},u.toString=function(A,I){return A.toString(I)},u.toLEBuff=function(A){const I=new Uint8Array(Math.floor((u.bitLength(A)-1)/8)+1);return u.toRprLE(I,0,A,I.byteLength),I},u.zero=u.e(0),u.one=u.e(1);let{toRprLE:l,toRprBE:y,fromRprLE:p,fromRprBE:F,toString:M,toLEBuff:m,zero:d,one:G,fromString:H,e:U,fromArray:b,bitLength:L,isNegative:k,isZero:N,shiftLeft:J,shiftRight:S,shl:v,shr:R,isOdd:Y,naf:q,bits:x,toNumber:P,toArray:X,add:O,sub:Z,neg:V,mul:K,square:j,pow:z,exp:W,abs:T,div:_,mod:$,eq:AA,neq:IA,lt:tA,gt:iA,leq:gA,geq:eA,band:CA,bor:nA,bxor:QA,land:BA,lor:rA,lnot:oA}=u;var EA=Object.freeze({__proto__:null,toRprLE:l,toRprBE:y,fromRprLE:p,fromRprBE:F,toString:M,toLEBuff:m,zero:d,one:G,fromString:H,e:U,fromArray:b,bitLength:L,isNegative:k,isZero:N,shiftLeft:J,shiftRight:S,shl:v,shr:R,isOdd:Y,naf:q,bits:x,toNumber:P,toArray:X,add:O,sub:Z,neg:V,mul:K,square:j,pow:z,exp:W,abs:T,div:_,mod:$,eq:AA,neq:IA,lt:tA,gt:iA,leq:gA,geq:eA,band:CA,bor:nA,bxor:QA,land:BA,lor:rA,lnot:oA});const aA=[];for(let A=0;A<256;A++)aA[A]=sA(A,8);function sA(A,I){let t=0,i=A;for(let A=0;A<I;A++)t<<=1,t|=1&i,i>>=1;return t}function hA(A,I,t){if(N(t))return A.one;const i=x(t);if(0==i.legth)return A.one;let g=I;for(let t=i.length-2;t>=0;t--)g=A.square(g),i[t]&&(g=A.mul(g,I));return g}function fA(A){if(A.m%2==1)if(AA($(A.p,4),1))if(AA($(A.p,8),1))if(AA($(A.p,16),1))!function(A){A.sqrt_q=z(A.p,A.m),A.sqrt_s=0,A.sqrt_t=Z(A.sqrt_q,1);for(;!Y(A.sqrt_t);)A.sqrt_s=A.sqrt_s+1,A.sqrt_t=_(A.sqrt_t,2);let I=A.one;for(;A.eq(I,A.one);){const t=A.random();A.sqrt_z=A.pow(t,A.sqrt_t),I=A.pow(A.sqrt_z,2**(A.sqrt_s-1))}A.sqrt_tm1d2=_(Z(A.sqrt_t,1),2),A.sqrt=function(A){const I=this;if(I.isZero(A))return I.zero;let t=I.pow(A,I.sqrt_tm1d2);const i=I.pow(I.mul(I.square(t),A),2**(I.sqrt_s-1));if(I.eq(i,I.negone))return null;let g=I.sqrt_s,e=I.mul(A,t),C=I.mul(e,t),n=I.sqrt_z;for(;!I.eq(C,I.one);){let A=I.square(C),i=1;for(;!I.eq(A,I.one);)A=I.square(A),i++;t=n;for(let A=0;A<g-i-1;A++)t=I.square(t);n=I.square(t),C=I.mul(C,n),e=I.mul(e,t),g=i}return I.geq(e,I.zero)?e:I.neg(e)}}(A);else{if(!AA($(A.p,16),9))throw new Error("Field withot sqrt");!function(A){A.sqrt=function(){throw new Error("Sqrt alg 4 not implemented")}}(A)}else{if(!AA($(A.p,8),5))throw new Error("Field withot sqrt");!function(A){A.sqrt=function(){throw new Error("Sqrt alg 3 not implemented")}}(A)}else AA($(A.p,4),3)&&function(A){A.sqrt_q=z(A.p,A.m),A.sqrt_e1=_(Z(A.sqrt_q,3),4),A.sqrt=function(I){if(this.isZero(I))return this.zero;const t=this.pow(I,this.sqrt_e1),i=this.mul(this.square(t),I);if(this.eq(i,this.negone))return null;const g=this.mul(t,I);return A.geq(g,A.zero)?g:A.neg(g)}}(A);else{const I=$(z(A.p,A.m/2),4);1==I?function(A){A.sqrt=function(){throw new Error("Sqrt alg 10 not implemented")}}(A):3==I?function(A){A.sqrt_q=z(A.p,A.m/2),A.sqrt_e34=_(Z(A.sqrt_q,3),4),A.sqrt_e12=_(Z(A.sqrt_q,1),2),A.frobenius=function(I,t){return I%2==1?A.conjugate(t):t},A.sqrt=function(A){const I=this,t=I.pow(A,I.sqrt_e34),i=I.mul(I.square(t),A),g=I.mul(I.frobenius(1,i),i);if(I.eq(g,I.negone))return null;const e=I.mul(t,A);let C;if(I.eq(i,I.negone))C=I.mul(e,[I.F.zero,I.F.one]);else{const A=I.pow(I.add(I.one,i),I.sqrt_e12);C=I.mul(A,e)}return I.geq(C,I.zero)?C:I.neg(C)}}(A):function(A){A.sqrt=function(){throw new Error("Sqrt alg 8 not implemented")}}(A)}}function wA(A,I,t,i,g){A[I]=A[I]+A[t]>>>0,A[g]=(A[g]^A[I])>>>0,A[g]=(A[g]<<16|A[g]>>>16&65535)>>>0,A[i]=A[i]+A[g]>>>0,A[t]=(A[t]^A[i])>>>0,A[t]=(A[t]<<12|A[t]>>>20&4095)>>>0,A[I]=A[I]+A[t]>>>0,A[g]=(A[g]^A[I])>>>0,A[g]=(A[g]<<8|A[g]>>>24&255)>>>0,A[i]=A[i]+A[g]>>>0,A[t]=(A[t]^A[i])>>>0,A[t]=(A[t]<<7|A[t]>>>25&127)>>>0}class DA{constructor(A){A=A||[0,0,0,0,0,0,0,0],this.state=[1634760805,857760878,2036477234,1797285236,A[0],A[1],A[2],A[3],A[4],A[5],A[6],A[7],0,0,0,0],this.idx=16,this.buff=new Array(16)}nextU32(){return 16==this.idx&&this.update(),this.buff[this.idx++]}nextU64(){return O(K(this.nextU32(),4294967296),this.nextU32())}nextBool(){return 1==(1&this.nextU32())}update(){for(let A=0;A<16;A++)this.buff[A]=this.state[A];for(let I=0;I<10;I++)wA(A=this.buff,0,4,8,12),wA(A,1,5,9,13),wA(A,2,6,10,14),wA(A,3,7,11,15),wA(A,0,5,10,15),wA(A,1,6,11,12),wA(A,2,7,8,13),wA(A,3,4,9,14);var A;for(let A=0;A<16;A++)this.buff[A]=this.buff[A]+this.state[A]>>>0;this.idx=0,this.state[12]=this.state[12]+1>>>0,0==this.state[12]&&(this.state[13]=this.state[13]+1>>>0,0==this.state[13]&&(this.state[14]=this.state[14]+1>>>0,0==this.state[14]&&(this.state[15]=this.state[15]+1>>>0)))}}var cA={};function uA(A){let I=new Uint8Array(A);if("undefined"!=typeof window)if(void 0!==window.crypto)window.crypto.getRandomValues(I);else for(let t=0;t<A;t++)I[t]=4294967296*Math.random()>>>0;else cA.randomFillSync(I);return I}let lA=null;function yA(){return lA||(lA=new DA(function(){const A=uA(32),I=new Uint32Array(A.buffer),t=[];for(let A=0;A<8;A++)t.push(I[A]);return t}()),lA)}class pA{constructor(A){this.type="F1",this.one=BigInt(1),this.zero=BigInt(0),this.p=BigInt(A),this.m=1,this.negone=this.p-this.one,this.two=BigInt(2),this.half=this.p>>this.one,this.bitLength=L(this.p),this.mask=(this.one<<BigInt(this.bitLength))-this.one,this.n64=Math.floor((this.bitLength-1)/64)+1,this.n32=2*this.n64,this.n8=8*this.n64,this.R=this.e(this.one<<BigInt(64*this.n64)),this.Ri=this.inv(this.R);const I=this.negone>>this.one;this.nqr=this.two;let t=this.pow(this.nqr,I);for(;!this.eq(t,this.negone);)this.nqr=this.nqr+this.one,t=this.pow(this.nqr,I);for(this.s=0,this.t=this.negone;(this.t&this.one)==this.zero;)this.s=this.s+1,this.t=this.t>>this.one;this.nqr_to_t=this.pow(this.nqr,this.t),fA(this)}e(A,I){let t;if(I?16==I&&(t=BigInt("0x"+A)):t=BigInt(A),t<0){let A=-t;return A>=this.p&&(A%=this.p),this.p-A}return t>=this.p?t%this.p:t}add(A,I){const t=A+I;return t>=this.p?t-this.p:t}sub(A,I){return A>=I?A-I:this.p-I+A}neg(A){return A?this.p-A:A}mul(A,I){return A*I%this.p}mulScalar(A,I){return A*this.e(I)%this.p}square(A){return A*A%this.p}eq(A,I){return A==I}neq(A,I){return A!=I}lt(A,I){return(A>this.half?A-this.p:A)<(I>this.half?I-this.p:I)}gt(A,I){return(A>this.half?A-this.p:A)>(I>this.half?I-this.p:I)}leq(A,I){return(A>this.half?A-this.p:A)<=(I>this.half?I-this.p:I)}geq(A,I){return(A>this.half?A-this.p:A)>=(I>this.half?I-this.p:I)}div(A,I){return this.mul(A,this.inv(I))}idiv(A,I){if(!I)throw new Error("Division by zero");return A/I}inv(A){if(!A)throw new Error("Division by zero");let I=this.zero,t=this.p,i=this.one,g=A%this.p;for(;g;){let A=t/g;[I,i]=[i,I-A*i],[t,g]=[g,t-A*g]}return I<this.zero&&(I+=this.p),I}mod(A,I){return A%I}pow(A,I){return hA(this,A,I)}exp(A,I){return hA(this,A,I)}band(A,I){const t=A&I&this.mask;return t>=this.p?t-this.p:t}bor(A,I){const t=(A|I)&this.mask;return t>=this.p?t-this.p:t}bxor(A,I){const t=(A^I)&this.mask;return t>=this.p?t-this.p:t}bnot(A){const I=A^this.mask;return I>=this.p?I-this.p:I}shl(A,I){if(Number(I)<this.bitLength){const t=A<<I&this.mask;return t>=this.p?t-this.p:t}{const t=this.p-I;return Number(t)<this.bitLength?A>>t:this.zero}}shr(A,I){if(Number(I)<this.bitLength)return A>>I;{const t=this.p-I;if(Number(t)<this.bitLength){const I=A<<t&this.mask;return I>=this.p?I-this.p:I}return 0}}land(A,I){return A&&I?this.one:this.zero}lor(A,I){return A||I?this.one:this.zero}lnot(A){return A?this.zero:this.one}sqrt_old(A){if(A==this.zero)return this.zero;if(this.pow(A,this.negone>>this.one)!=this.one)return null;let I=this.s,t=this.nqr_to_t,i=this.pow(A,this.t),g=this.pow(A,this.add(this.t,this.one)>>this.one);for(;i!=this.one;){let A=this.square(i),e=1;for(;A!=this.one;)e++,A=this.square(A);let C=t;for(let A=0;A<I-e-1;A++)C=this.square(C);I=e,t=this.square(C),i=this.mul(i,t),g=this.mul(g,C)}return g>this.p>>this.one&&(g=this.neg(g)),g}normalize(A,I){if((A=BigInt(A,I))<0){let I=-A;return I>=this.p&&(I%=this.p),this.p-I}return A>=this.p?A%this.p:A}random(){const A=2*this.bitLength/8;let I=this.zero;for(let t=0;t<A;t++)I=(I<<BigInt(8))+BigInt(uA(1)[0]);return I%this.p}toString(A,I){let t;if(A>this.half){t="-"+(this.p-A).toString(I)}else t=A.toString(I);return t}isZero(A){return A==this.zero}fromRng(A){let I;do{I=this.zero;for(let t=0;t<this.n64;t++)I+=A.nextU64()<<BigInt(64*t);I&=this.mask}while(I>=this.p);return I=I*this.Ri%this.p,I}}class FA{constructor(A){this.type="F1",this.one=o.one,this.zero=o.zero,this.p=o(A),this.m=1,this.negone=this.p.minus(o.one),this.two=o(2),this.half=this.p.shiftRight(1),this.bitLength=this.p.bitLength(),this.mask=o.one.shiftLeft(this.bitLength).minus(o.one),this.n64=Math.floor((this.bitLength-1)/64)+1,this.n32=2*this.n64,this.n8=8*this.n64,this.R=o.one.shiftLeft(64*this.n64),this.Ri=this.inv(this.R);const I=this.negone.shiftRight(this.one);this.nqr=this.two;let t=this.pow(this.nqr,I);for(;!t.equals(this.negone);)this.nqr=this.nqr.add(this.one),t=this.pow(this.nqr,I);for(this.s=this.zero,this.t=this.negone;!this.t.isOdd();)this.s=this.s.add(this.one),this.t=this.t.shiftRight(this.one);this.nqr_to_t=this.pow(this.nqr,this.t),fA(this)}e(A,I){const t=o(A,I);return this.normalize(t)}add(A,I){let t=A.add(I);return t.geq(this.p)&&(t=t.minus(this.p)),t}sub(A,I){return A.geq(I)?A.minus(I):this.p.minus(I.minus(A))}neg(A){return A.isZero()?A:this.p.minus(A)}mul(A,I){return A.times(I).mod(this.p)}mulScalar(A,I){return A.times(o(I)).mod(this.p)}square(A){return A.square().mod(this.p)}eq(A,I){return A.eq(I)}neq(A,I){return A.neq(I)}lt(A,I){const t=A.gt(this.half)?A.minus(this.p):A,i=I.gt(this.half)?I.minus(this.p):I;return t.lt(i)}gt(A,I){const t=A.gt(this.half)?A.minus(this.p):A,i=I.gt(this.half)?I.minus(this.p):I;return t.gt(i)}leq(A,I){const t=A.gt(this.half)?A.minus(this.p):A,i=I.gt(this.half)?I.minus(this.p):I;return t.leq(i)}geq(A,I){const t=A.gt(this.half)?A.minus(this.p):A,i=I.gt(this.half)?I.minus(this.p):I;return t.geq(i)}div(A,I){if(I.isZero())throw new Error("Division by zero");return A.times(I.modInv(this.p)).mod(this.p)}idiv(A,I){if(I.isZero())throw new Error("Division by zero");return A.divide(I)}inv(A){if(A.isZero())throw new Error("Division by zero");return A.modInv(this.p)}mod(A,I){return A.mod(I)}pow(A,I){return A.modPow(I,this.p)}exp(A,I){return A.modPow(I,this.p)}band(A,I){return A.and(I).and(this.mask).mod(this.p)}bor(A,I){return A.or(I).and(this.mask).mod(this.p)}bxor(A,I){return A.xor(I).and(this.mask).mod(this.p)}bnot(A){return A.xor(this.mask).mod(this.p)}shl(A,I){if(I.lt(this.bitLength))return A.shiftLeft(I).and(this.mask).mod(this.p);{const t=this.p.minus(I);return t.lt(this.bitLength)?this.shr(A,t):o.zero}}shr(A,I){if(I.lt(this.bitLength))return A.shiftRight(I);{const t=this.p.minus(I);return t.lt(this.bitLength)?this.shl(A,t):o.zero}}land(A,I){return A.isZero()||I.isZero()?o.zero:o.one}lor(A,I){return A.isZero()&&I.isZero()?o.zero:o.one}lnot(A){return A.isZero()?o.one:o.zero}sqrt_old(A){if(A.equals(this.zero))return this.zero;if(!this.pow(A,this.negone.shiftRight(this.one)).equals(this.one))return null;let I=parseInt(this.s),t=this.nqr_to_t,i=this.pow(A,this.t),g=this.pow(A,this.add(this.t,this.one).shiftRight(this.one));for(;!i.equals(this.one);){let A=this.square(i),e=1;for(;!A.equals(this.one);)e++,A=this.square(A);let C=t;for(let A=0;A<I-e-1;A++)C=this.square(C);I=e,t=this.square(C),i=this.mul(i,t),g=this.mul(g,C)}return g.greater(this.p.shiftRight(this.one))&&(g=this.neg(g)),g}normalize(A){return(A=o(A)).isNegative()?this.p.minus(A.abs().mod(this.p)):A.mod(this.p)}random(){let A=o(0),I=o(this.p.square());for(;!I.isZero();)A=A.shiftLeft(8).add(o(uA(1)[0])),I=I.shiftRight(8);return A.mod(this.p)}toString(A,I){let t;if(A.lesserOrEquals(this.p.shiftRight(o(1))))t=A.toString(I);else{t="-"+this.p.minus(A).toString(I)}return t}isZero(A){return A.isZero()}fromRng(A){let I;do{I=o(0);for(let t=0;t<this.n64;t++)I=I.add(I,A.nextU64().shiftLeft(64*t));I=I.and(this.mask)}while(I.geq(this.p));return I=I.times(this.Ri).mod(this.q),I}}const MA="function"==typeof BigInt;let mA;mA=MA?pA:FA;class dA extends mA{toRprLE(A,I,t){l(A,I,t,8*this.n64)}toRprBE(A,I,t){y(A,I,t,8*this.n64)}toRprBEM(A,I,t){return this.toRprBE(A,I,this.mul(this.R,t))}toRprLEM(A,I,t){return this.toRprLE(A,I,this.mul(this.R,t))}fromRprLE(A,I){return p(A,I,this.n8)}fromRprBE(A,I){return F(A,I,this.n8)}fromRprLEM(A,I){return this.mul(this.fromRprLE(A,I),this.Ri)}fromRprBEM(A,I){return this.mul(this.fromRprBE(A,I),this.Ri)}}var GA={},HA={bn128_wasm:{code:"AGFzbQEAAAABlAESYAJ/fwBgAX8AYAF/AX9gAn9/AX9gA39/fwF/YAN/f38AYAN/fn8AYAJ/fgBgBH9/f38AYAV/f39/fwBgBH9/f38Bf2AHf39/f39/fwBgBn9/f39/fwBgCn9/f39/f39/f38AYAV/f39/fwF/YAd/f39/f39/AX9gCX9/f39/f39/fwF/YAt/f39/f39/f39/fwF/Ag8BA2VudgZtZW1vcnkCABkDuQK3AgABAgEDAwQEBQAABgcIBQIFBQAABQAAAAACAgABBQgJBQUIAAICBQUAAAUAAAAAAgIAAQUICQUFCAACBQAAAgICAQEAAAADAwMAAAUFBQAABQUFAAAAAAACAgUABQAAAAAFBQUFBQoACwkKAAsJCAgDAAgIAgAACQwMBQUMAAgNCQgCAgEBAAUFAAUFAAAAAAMACAICCQgAAgICAQEAAAADAwMAAAUFBQAABQUFAAAAAAACAgUABQAAAAAFBQUFBQoACwkKAAsJCAgFAwAICAIAAAkMDAUFDAUDAAgIAgAACQwMBQUMBQUJCQkJCQACAgEBAAUABQUAAgAAAwAIAgkIAAICAQEABQUABQUAAAAAAwAIAgIJCAACBQAAAAAICAUAAAAAAAAAAAAAAAAAAAAABA4PEBEFB+0kqAIIaW50X2NvcHkAAAhpbnRfemVybwABB2ludF9vbmUAAwppbnRfaXNaZXJvAAIGaW50X2VxAAQHaW50X2d0ZQAFB2ludF9hZGQABgdpbnRfc3ViAAcHaW50X211bAAICmludF9zcXVhcmUACQ1pbnRfc3F1YXJlT2xkAAoHaW50X2RpdgANDmludF9pbnZlcnNlTW9kAA4IZjFtX2NvcHkAAAhmMW1femVybwABCmYxbV9pc1plcm8AAgZmMW1fZXEABAdmMW1fYWRkABAHZjFtX3N1YgARB2YxbV9uZWcAEg5mMW1faXNOZWdhdGl2ZQAZCWYxbV9pc09uZQAPCGYxbV9zaWduABoLZjFtX21SZWR1Y3QAEwdmMW1fbXVsABQKZjFtX3NxdWFyZQAVDWYxbV9zcXVhcmVPbGQAFhJmMW1fZnJvbU1vbnRnb21lcnkAGBBmMW1fdG9Nb250Z29tZXJ5ABcLZjFtX2ludmVyc2UAGwdmMW1fb25lABwIZjFtX2xvYWQAHQ9mMW1fdGltZXNTY2FsYXIAHgdmMW1fZXhwACIQZjFtX2JhdGNoSW52ZXJzZQAfCGYxbV9zcXJ0ACMMZjFtX2lzU3F1YXJlACQVZjFtX2JhdGNoVG9Nb250Z29tZXJ5ACAXZjFtX2JhdGNoRnJvbU1vbnRnb21lcnkAIQhmcm1fY29weQAACGZybV96ZXJvAAEKZnJtX2lzWmVybwACBmZybV9lcQAEB2ZybV9hZGQAJgdmcm1fc3ViACcHZnJtX25lZwAoDmZybV9pc05lZ2F0aXZlAC8JZnJtX2lzT25lACUIZnJtX3NpZ24AMAtmcm1fbVJlZHVjdAApB2ZybV9tdWwAKgpmcm1fc3F1YXJlACsNZnJtX3NxdWFyZU9sZAAsEmZybV9mcm9tTW9udGdvbWVyeQAuEGZybV90b01vbnRnb21lcnkALQtmcm1faW52ZXJzZQAxB2ZybV9vbmUAMghmcm1fbG9hZAAzD2ZybV90aW1lc1NjYWxhcgA0B2ZybV9leHAAOBBmcm1fYmF0Y2hJbnZlcnNlADUIZnJtX3NxcnQAOQxmcm1faXNTcXVhcmUAOhVmcm1fYmF0Y2hUb01vbnRnb21lcnkANhdmcm1fYmF0Y2hGcm9tTW9udGdvbWVyeQA3BmZyX2FkZAAmBmZyX3N1YgAnBmZyX25lZwAoBmZyX211bAA7CWZyX3NxdWFyZQA8CmZyX2ludmVyc2UAPQ1mcl9pc05lZ2F0aXZlAD4HZnJfY29weQAAB2ZyX3plcm8AAQZmcl9vbmUAMglmcl9pc1plcm8AAgVmcl9lcQAEDGcxbV9tdWx0aWV4cABpEmcxbV9tdWx0aWV4cF9jaHVuawBoEmcxbV9tdWx0aWV4cEFmZmluZQBtGGcxbV9tdWx0aWV4cEFmZmluZV9jaHVuawBsCmcxbV9pc1plcm8AQBBnMW1faXNaZXJvQWZmaW5lAD8GZzFtX2VxAEgLZzFtX2VxTWl4ZWQARwxnMW1fZXFBZmZpbmUARghnMW1fY29weQBEDmcxbV9jb3B5QWZmaW5lAEMIZzFtX3plcm8AQg5nMW1femVyb0FmZmluZQBBCmcxbV9kb3VibGUAShBnMW1fZG91YmxlQWZmaW5lAEkHZzFtX2FkZABNDGcxbV9hZGRNaXhlZABMDWcxbV9hZGRBZmZpbmUASwdnMW1fbmVnAE8NZzFtX25lZ0FmZmluZQBOB2cxbV9zdWIAUgxnMW1fc3ViTWl4ZWQAUQ1nMW1fc3ViQWZmaW5lAFASZzFtX2Zyb21Nb250Z29tZXJ5AFQYZzFtX2Zyb21Nb250Z29tZXJ5QWZmaW5lAFMQZzFtX3RvTW9udGdvbWVyeQBWFmcxbV90b01vbnRnb21lcnlBZmZpbmUAVQ9nMW1fdGltZXNTY2FsYXIAbhVnMW1fdGltZXNTY2FsYXJBZmZpbmUAbw1nMW1fbm9ybWFsaXplAFsKZzFtX0xFTXRvVQBdCmcxbV9MRU10b0MAXgpnMW1fVXRvTEVNAF8KZzFtX0N0b0xFTQBgD2cxbV9iYXRjaExFTXRvVQBhD2cxbV9iYXRjaExFTXRvQwBiD2cxbV9iYXRjaFV0b0xFTQBjD2cxbV9iYXRjaEN0b0xFTQBkDGcxbV90b0FmZmluZQBXDmcxbV90b0phY29iaWFuAEURZzFtX2JhdGNoVG9BZmZpbmUAWhNnMW1fYmF0Y2hUb0phY29iaWFuAGULZzFtX2luQ3VydmUAWRFnMW1faW5DdXJ2ZUFmZmluZQBYB2ZybV9mZnQAdQhmcm1faWZmdAB2CmZybV9yYXdmZnQAcwtmcm1fZmZ0Sm9pbgB3DmZybV9mZnRKb2luRXh0AHgRZnJtX2ZmdEpvaW5FeHRJbnYAeQpmcm1fZmZ0TWl4AHoMZnJtX2ZmdEZpbmFsAHsdZnJtX3ByZXBhcmVMYWdyYW5nZUV2YWx1YXRpb24AfAhwb2xfemVybwB9D3BvbF9jb25zdHJ1Y3RMQwB+DHFhcF9idWlsZEFCQwB/C3FhcF9qb2luQUJDAIABDHFhcF9iYXRjaEFkZACBAQpmMm1faXNaZXJvAIIBCWYybV9pc09uZQCDAQhmMm1femVybwCEAQdmMm1fb25lAIUBCGYybV9jb3B5AIYBB2YybV9tdWwAhwEIZjJtX211bDEAiAEKZjJtX3NxdWFyZQCJAQdmMm1fYWRkAIoBB2YybV9zdWIAiwEHZjJtX25lZwCMAQhmMm1fc2lnbgCTAQ1mMm1fY29uanVnYXRlAI0BEmYybV9mcm9tTW9udGdvbWVyeQCPARBmMm1fdG9Nb250Z29tZXJ5AI4BBmYybV9lcQCQAQtmMm1faW52ZXJzZQCRAQdmMm1fZXhwAJYBD2YybV90aW1lc1NjYWxhcgCSARBmMm1fYmF0Y2hJbnZlcnNlAJUBCGYybV9zcXJ0AJcBDGYybV9pc1NxdWFyZQCYAQ5mMm1faXNOZWdhdGl2ZQCUAQxnMm1fbXVsdGlleHAAwwESZzJtX211bHRpZXhwX2NodW5rAMIBEmcybV9tdWx0aWV4cEFmZmluZQDHARhnMm1fbXVsdGlleHBBZmZpbmVfY2h1bmsAxgEKZzJtX2lzWmVybwCaARBnMm1faXNaZXJvQWZmaW5lAJkBBmcybV9lcQCiAQtnMm1fZXFNaXhlZAChAQxnMm1fZXFBZmZpbmUAoAEIZzJtX2NvcHkAngEOZzJtX2NvcHlBZmZpbmUAnQEIZzJtX3plcm8AnAEOZzJtX3plcm9BZmZpbmUAmwEKZzJtX2RvdWJsZQCkARBnMm1fZG91YmxlQWZmaW5lAKMBB2cybV9hZGQApwEMZzJtX2FkZE1peGVkAKYBDWcybV9hZGRBZmZpbmUApQEHZzJtX25lZwCpAQ1nMm1fbmVnQWZmaW5lAKgBB2cybV9zdWIArAEMZzJtX3N1Yk1peGVkAKsBDWcybV9zdWJBZmZpbmUAqgESZzJtX2Zyb21Nb250Z29tZXJ5AK4BGGcybV9mcm9tTW9udGdvbWVyeUFmZmluZQCtARBnMm1fdG9Nb250Z29tZXJ5ALABFmcybV90b01vbnRnb21lcnlBZmZpbmUArwEPZzJtX3RpbWVzU2NhbGFyAMgBFWcybV90aW1lc1NjYWxhckFmZmluZQDJAQ1nMm1fbm9ybWFsaXplALUBCmcybV9MRU10b1UAtwEKZzJtX0xFTXRvQwC4AQpnMm1fVXRvTEVNALkBCmcybV9DdG9MRU0AugEPZzJtX2JhdGNoTEVNdG9VALsBD2cybV9iYXRjaExFTXRvQwC8AQ9nMm1fYmF0Y2hVdG9MRU0AvQEPZzJtX2JhdGNoQ3RvTEVNAL4BDGcybV90b0FmZmluZQCxAQ5nMm1fdG9KYWNvYmlhbgCfARFnMm1fYmF0Y2hUb0FmZmluZQC0ARNnMm1fYmF0Y2hUb0phY29iaWFuAL8BC2cybV9pbkN1cnZlALMBEWcybV9pbkN1cnZlQWZmaW5lALIBC2cxbV90aW1lc0ZyAMoBB2cxbV9mZnQA0AEIZzFtX2lmZnQA0QEKZzFtX3Jhd2ZmdADOAQtnMW1fZmZ0Sm9pbgDSAQ5nMW1fZmZ0Sm9pbkV4dADTARFnMW1fZmZ0Sm9pbkV4dEludgDUAQpnMW1fZmZ0TWl4ANUBDGcxbV9mZnRGaW5hbADWAR1nMW1fcHJlcGFyZUxhZ3JhbmdlRXZhbHVhdGlvbgDXAQtnMm1fdGltZXNGcgDYAQdnMm1fZmZ0AN4BCGcybV9pZmZ0AN8BCmcybV9yYXdmZnQA3AELZzJtX2ZmdEpvaW4A4AEOZzJtX2ZmdEpvaW5FeHQA4QERZzJtX2ZmdEpvaW5FeHRJbnYA4gEKZzJtX2ZmdE1peADjAQxnMm1fZmZ0RmluYWwA5AEdZzJtX3ByZXBhcmVMYWdyYW5nZUV2YWx1YXRpb24A5QERZzFtX3RpbWVzRnJBZmZpbmUA5gERZzJtX3RpbWVzRnJBZmZpbmUA5wERZnJtX2JhdGNoQXBwbHlLZXkA6AERZzFtX2JhdGNoQXBwbHlLZXkA6QEWZzFtX2JhdGNoQXBwbHlLZXlNaXhlZADqARFnMm1fYmF0Y2hBcHBseUtleQDrARZnMm1fYmF0Y2hBcHBseUtleU1peGVkAOwBCmY2bV9pc1plcm8A7gEJZjZtX2lzT25lAO8BCGY2bV96ZXJvAPABB2Y2bV9vbmUA8QEIZjZtX2NvcHkA8gEHZjZtX211bADzAQpmNm1fc3F1YXJlAPQBB2Y2bV9hZGQA9QEHZjZtX3N1YgD2AQdmNm1fbmVnAPcBCGY2bV9zaWduAPgBEmY2bV9mcm9tTW9udGdvbWVyeQD6ARBmNm1fdG9Nb250Z29tZXJ5APkBBmY2bV9lcQD7AQtmNm1faW52ZXJzZQD8AQdmNm1fZXhwAIACD2Y2bV90aW1lc1NjYWxhcgD9ARBmNm1fYmF0Y2hJbnZlcnNlAP8BDmY2bV9pc05lZ2F0aXZlAP4BCmZ0bV9pc1plcm8AggIJZnRtX2lzT25lAIMCCGZ0bV96ZXJvAIQCB2Z0bV9vbmUAhQIIZnRtX2NvcHkAhgIHZnRtX211bACHAghmdG1fbXVsMQCIAgpmdG1fc3F1YXJlAIkCB2Z0bV9hZGQAigIHZnRtX3N1YgCLAgdmdG1fbmVnAIwCCGZ0bV9zaWduAJMCDWZ0bV9jb25qdWdhdGUAjQISZnRtX2Zyb21Nb250Z29tZXJ5AI8CEGZ0bV90b01vbnRnb21lcnkAjgIGZnRtX2VxAJACC2Z0bV9pbnZlcnNlAJECB2Z0bV9leHAAlgIPZnRtX3RpbWVzU2NhbGFyAJICEGZ0bV9iYXRjaEludmVyc2UAlQIIZnRtX3NxcnQAlwIMZnRtX2lzU3F1YXJlAJgCDmZ0bV9pc05lZ2F0aXZlAJQCFGJuMTI4X19mcm9iZW5pdXNNYXAwAKECFGJuMTI4X19mcm9iZW5pdXNNYXAxAKICFGJuMTI4X19mcm9iZW5pdXNNYXAyAKMCFGJuMTI4X19mcm9iZW5pdXNNYXAzAKQCFGJuMTI4X19mcm9iZW5pdXNNYXA0AKUCFGJuMTI4X19mcm9iZW5pdXNNYXA1AKYCFGJuMTI4X19mcm9iZW5pdXNNYXA2AKcCFGJuMTI4X19mcm9iZW5pdXNNYXA3AKgCFGJuMTI4X19mcm9iZW5pdXNNYXA4AKkCFGJuMTI4X19mcm9iZW5pdXNNYXA5AKoCEGJuMTI4X3BhaXJpbmdFcTEAsQIQYm4xMjhfcGFpcmluZ0VxMgCyAhBibjEyOF9wYWlyaW5nRXEzALMCEGJuMTI4X3BhaXJpbmdFcTQAtAIQYm4xMjhfcGFpcmluZ0VxNQC1Ag1ibjEyOF9wYWlyaW5nALYCD2JuMTI4X3ByZXBhcmVHMQCbAg9ibjEyOF9wcmVwYXJlRzIAnQIQYm4xMjhfbWlsbGVyTG9vcACgAhlibjEyOF9maW5hbEV4cG9uZW50aWF0aW9uALACHGJuMTI4X2ZpbmFsRXhwb25lbnRpYXRpb25PbGQAqwIPYm4xMjhfX211bEJ5MDI0AJ4CEmJuMTI4X19tdWxCeTAyNE9sZACfAhdibjEyOF9fY3ljbG90b21pY1NxdWFyZQCtAhdibjEyOF9fY3ljbG90b21pY0V4cF93MACuAgrA2wO3AioAIAEgACkDADcDACABIAApAwg3AwggASAAKQMQNwMQIAEgACkDGDcDGAseACAAQgA3AwAgAEIANwMIIABCADcDECAAQgA3AxgLMwAgACkDGFAEQCAAKQMQUARAIAApAwhQBEAgACkDAFAPBUEADwsFQQAPCwVBAA8LQQAPCx4AIABCATcDACAAQgA3AwggAEIANwMQIABCADcDGAtHACAAKQMYIAEpAxhRBEAgACkDECABKQMQUQRAIAApAwggASkDCFEEQCAAKQMAIAEpAwBRDwVBAA8LBUEADwsFQQAPC0EADwt9ACAAKQMYIAEpAxhUBEBBAA8FIAApAxggASkDGFYEQEEBDwUgACkDECABKQMQVARAQQAPBSAAKQMQIAEpAxBWBEBBAQ8FIAApAwggASkDCFQEQEEADwUgACkDCCABKQMIVgRAQQEPBSAAKQMAIAEpAwBaDwsLCwsLC0EADwvUAQEBfiAANQIAIAE1AgB8IQMgAiADPgIAIAA1AgQgATUCBHwgA0IgiHwhAyACIAM+AgQgADUCCCABNQIIfCADQiCIfCEDIAIgAz4CCCAANQIMIAE1Agx8IANCIIh8IQMgAiADPgIMIAA1AhAgATUCEHwgA0IgiHwhAyACIAM+AhAgADUCFCABNQIUfCADQiCIfCEDIAIgAz4CFCAANQIYIAE1Ahh8IANCIIh8IQMgAiADPgIYIAA1AhwgATUCHHwgA0IgiHwhAyACIAM+AhwgA0IgiKcLjAIBAX4gADUCACABNQIAfSEDIAIgA0L/////D4M+AgAgADUCBCABNQIEfSADQiCHfCEDIAIgA0L/////D4M+AgQgADUCCCABNQIIfSADQiCHfCEDIAIgA0L/////D4M+AgggADUCDCABNQIMfSADQiCHfCEDIAIgA0L/////D4M+AgwgADUCECABNQIQfSADQiCHfCEDIAIgA0L/////D4M+AhAgADUCFCABNQIUfSADQiCHfCEDIAIgA0L/////D4M+AhQgADUCGCABNQIYfSADQiCHfCEDIAIgA0L/////D4M+AhggADUCHCABNQIcfSADQiCHfCEDIAIgA0L/////D4M+AhwgA0Igh6cLjxASAX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+IANC/////w+DIAA1AgAiBSABNQIAIgZ+fCEDIAQgA0IgiHwhBCACIAM+AgAgBEIgiCEDIARC/////w+DIAUgATUCBCIIfnwhBCADIARCIIh8IQMgBEL/////D4MgADUCBCIHIAZ+fCEEIAMgBEIgiHwhAyACIAQ+AgQgA0IgiCEEIANC/////w+DIAUgATUCCCIKfnwhAyAEIANCIIh8IQQgA0L/////D4MgByAIfnwhAyAEIANCIIh8IQQgA0L/////D4MgADUCCCIJIAZ+fCEDIAQgA0IgiHwhBCACIAM+AgggBEIgiCEDIARC/////w+DIAUgATUCDCIMfnwhBCADIARCIIh8IQMgBEL/////D4MgByAKfnwhBCADIARCIIh8IQMgBEL/////D4MgCSAIfnwhBCADIARCIIh8IQMgBEL/////D4MgADUCDCILIAZ+fCEEIAMgBEIgiHwhAyACIAQ+AgwgA0IgiCEEIANC/////w+DIAUgATUCECIOfnwhAyAEIANCIIh8IQQgA0L/////D4MgByAMfnwhAyAEIANCIIh8IQQgA0L/////D4MgCSAKfnwhAyAEIANCIIh8IQQgA0L/////D4MgCyAIfnwhAyAEIANCIIh8IQQgA0L/////D4MgADUCECINIAZ+fCEDIAQgA0IgiHwhBCACIAM+AhAgBEIgiCEDIARC/////w+DIAUgATUCFCIQfnwhBCADIARCIIh8IQMgBEL/////D4MgByAOfnwhBCADIARCIIh8IQMgBEL/////D4MgCSAMfnwhBCADIARCIIh8IQMgBEL/////D4MgCyAKfnwhBCADIARCIIh8IQMgBEL/////D4MgDSAIfnwhBCADIARCIIh8IQMgBEL/////D4MgADUCFCIPIAZ+fCEEIAMgBEIgiHwhAyACIAQ+AhQgA0IgiCEEIANC/////w+DIAUgATUCGCISfnwhAyAEIANCIIh8IQQgA0L/////D4MgByAQfnwhAyAEIANCIIh8IQQgA0L/////D4MgCSAOfnwhAyAEIANCIIh8IQQgA0L/////D4MgCyAMfnwhAyAEIANCIIh8IQQgA0L/////D4MgDSAKfnwhAyAEIANCIIh8IQQgA0L/////D4MgDyAIfnwhAyAEIANCIIh8IQQgA0L/////D4MgADUCGCIRIAZ+fCEDIAQgA0IgiHwhBCACIAM+AhggBEIgiCEDIARC/////w+DIAUgATUCHCIUfnwhBCADIARCIIh8IQMgBEL/////D4MgByASfnwhBCADIARCIIh8IQMgBEL/////D4MgCSAQfnwhBCADIARCIIh8IQMgBEL/////D4MgCyAOfnwhBCADIARCIIh8IQMgBEL/////D4MgDSAMfnwhBCADIARCIIh8IQMgBEL/////D4MgDyAKfnwhBCADIARCIIh8IQMgBEL/////D4MgESAIfnwhBCADIARCIIh8IQMgBEL/////D4MgADUCHCITIAZ+fCEEIAMgBEIgiHwhAyACIAQ+AhwgA0IgiCEEIANC/////w+DIAcgFH58IQMgBCADQiCIfCEEIANC/////w+DIAkgEn58IQMgBCADQiCIfCEEIANC/////w+DIAsgEH58IQMgBCADQiCIfCEEIANC/////w+DIA0gDn58IQMgBCADQiCIfCEEIANC/////w+DIA8gDH58IQMgBCADQiCIfCEEIANC/////w+DIBEgCn58IQMgBCADQiCIfCEEIANC/////w+DIBMgCH58IQMgBCADQiCIfCEEIAIgAz4CICAEQiCIIQMgBEL/////D4MgCSAUfnwhBCADIARCIIh8IQMgBEL/////D4MgCyASfnwhBCADIARCIIh8IQMgBEL/////D4MgDSAQfnwhBCADIARCIIh8IQMgBEL/////D4MgDyAOfnwhBCADIARCIIh8IQMgBEL/////D4MgESAMfnwhBCADIARCIIh8IQMgBEL/////D4MgEyAKfnwhBCADIARCIIh8IQMgAiAEPgIkIANCIIghBCADQv////8PgyALIBR+fCEDIAQgA0IgiHwhBCADQv////8PgyANIBJ+fCEDIAQgA0IgiHwhBCADQv////8PgyAPIBB+fCEDIAQgA0IgiHwhBCADQv////8PgyARIA5+fCEDIAQgA0IgiHwhBCADQv////8PgyATIAx+fCEDIAQgA0IgiHwhBCACIAM+AiggBEIgiCEDIARC/////w+DIA0gFH58IQQgAyAEQiCIfCEDIARC/////w+DIA8gEn58IQQgAyAEQiCIfCEDIARC/////w+DIBEgEH58IQQgAyAEQiCIfCEDIARC/////w+DIBMgDn58IQQgAyAEQiCIfCEDIAIgBD4CLCADQiCIIQQgA0L/////D4MgDyAUfnwhAyAEIANCIIh8IQQgA0L/////D4MgESASfnwhAyAEIANCIIh8IQQgA0L/////D4MgEyAQfnwhAyAEIANCIIh8IQQgAiADPgIwIARCIIghAyAEQv////8PgyARIBR+fCEEIAMgBEIgiHwhAyAEQv////8PgyATIBJ+fCEEIAMgBEIgiHwhAyACIAQ+AjQgA0IgiCEEIANC/////w+DIBMgFH58IQMgBCADQiCIfCEEIAIgAz4COCAEQiCIIQMgAiAEPgI8C4wSDAF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfkIAIQJCACEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIAA1AgAiBiAGfnwhAiADIAJCIIh8IQMgASACPgIAIAMhBCAEQiCIIQVCACECQgAhAyACQv////8PgyAGIAA1AgQiB358IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyABIAI+AgQgAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DIAYgADUCCCIIfnwhAiADIAJCIIh8IQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgByAHfnwhAiADIAJCIIh8IQMgAkL/////D4MgBEL/////D4N8IQIgAyACQiCIfCAFfCEDIAEgAj4CCCADIQQgBEIgiCEFQgAhAkIAIQMgAkL/////D4MgBiAANQIMIgl+fCECIAMgAkIgiHwhAyACQv////8PgyAHIAh+fCECIAMgAkIgiHwhAyACQv////8Pg0IBhiECIANCAYYgAkIgiHwhAyACQv////8PgyAEQv////8Pg3whAiADIAJCIIh8IAV8IQMgASACPgIMIAMhBCAEQiCIIQVCACECQgAhAyACQv////8PgyAGIAA1AhAiCn58IQIgAyACQiCIfCEDIAJC/////w+DIAcgCX58IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIAggCH58IQIgAyACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyABIAI+AhAgAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DIAYgADUCFCILfnwhAiADIAJCIIh8IQMgAkL/////D4MgByAKfnwhAiADIAJCIIh8IQMgAkL/////D4MgCCAJfnwhAiADIAJCIIh8IQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgBEL/////D4N8IQIgAyACQiCIfCAFfCEDIAEgAj4CFCADIQQgBEIgiCEFQgAhAkIAIQMgAkL/////D4MgBiAANQIYIgx+fCECIAMgAkIgiHwhAyACQv////8PgyAHIAt+fCECIAMgAkIgiHwhAyACQv////8PgyAIIAp+fCECIAMgAkIgiHwhAyACQv////8Pg0IBhiECIANCAYYgAkIgiHwhAyACQv////8PgyAJIAl+fCECIAMgAkIgiHwhAyACQv////8PgyAEQv////8Pg3whAiADIAJCIIh8IAV8IQMgASACPgIYIAMhBCAEQiCIIQVCACECQgAhAyACQv////8PgyAGIAA1AhwiDX58IQIgAyACQiCIfCEDIAJC/////w+DIAcgDH58IQIgAyACQiCIfCEDIAJC/////w+DIAggC358IQIgAyACQiCIfCEDIAJC/////w+DIAkgCn58IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyABIAI+AhwgAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DIAcgDX58IQIgAyACQiCIfCEDIAJC/////w+DIAggDH58IQIgAyACQiCIfCEDIAJC/////w+DIAkgC358IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIAogCn58IQIgAyACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyABIAI+AiAgAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DIAggDX58IQIgAyACQiCIfCEDIAJC/////w+DIAkgDH58IQIgAyACQiCIfCEDIAJC/////w+DIAogC358IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyABIAI+AiQgAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DIAkgDX58IQIgAyACQiCIfCEDIAJC/////w+DIAogDH58IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIAsgC358IQIgAyACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyABIAI+AiggAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DIAogDX58IQIgAyACQiCIfCEDIAJC/////w+DIAsgDH58IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyABIAI+AiwgAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DIAsgDX58IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIAwgDH58IQIgAyACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyABIAI+AjAgAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DIAwgDX58IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyABIAI+AjQgAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIA0gDX58IQIgAyACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyABIAI+AjggAyEEIARCIIghBSABIAQ+AjwLCgAgACAAIAEQCAu2AQEBfiAANQAAIAF+IQMgAiADPgAAIAA1AAQgAX4gA0IgiHwhAyACIAM+AAQgADUACCABfiADQiCIfCEDIAIgAz4ACCAANQAMIAF+IANCIIh8IQMgAiADPgAMIAA1ABAgAX4gA0IgiHwhAyACIAM+ABAgADUAFCABfiADQiCIfCEDIAIgAz4AFCAANQAYIAF+IANCIIh8IQMgAiADPgAYIAA1ABwgAX4gA0IgiHwhAyACIAM+ABwLTgIBfgF/IAAhAyADNQAAIAF8IQIgAyACPgAAIAJCIIghAgJAA0AgAlANASADQQRqIQMgAzUAACACfCECIAMgAj4AACACQiCIIQIMAAsLC7ACBwF/AX8BfwF/AX4BfgF/IAIEQCACIQUFQegAIQULIAMEQCADIQQFQYgBIQQLIAAgBBAAIAFByAAQACAFEAFBqAEQAUEfIQZBHyEHAkADQEHIACAH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AhAgBH58IQMgACADPgIsIAA1AjAgA0IgiHxBiAQ1AhQgBH58IQMgACADPgIwIAA1AjQgA0IgiHxBiAQ1AhggBH58IQMgACADPgI0IAA1AjggA0IgiHxBiAQ1AhwgBH58IQMgACADPgI4QegGIANCIIg+AhxB6AYgAEEgaiABEBALvh8jAX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfkKJx5mkDiEFIANC/////w+DIAA1AgAiBiABNQIAIgd+fCEDIAQgA0IgiHwhBCADQv////8PgyAFfkL/////D4MhCCADQv////8Pg0EANQKIBCIJIAh+fCEDIAQgA0IgiHwhBCAEQiCIIQMgBEL/////D4MgBiABNQIEIgt+fCEEIAMgBEIgiHwhAyAEQv////8PgyAANQIEIgogB358IQQgAyAEQiCIfCEDIARC/////w+DQQA1AowEIg0gCH58IQQgAyAEQiCIfCEDIARC/////w+DIAV+Qv////8PgyEMIARC/////w+DIAkgDH58IQQgAyAEQiCIfCEDIANCIIghBCADQv////8PgyAGIAE1AggiD358IQMgBCADQiCIfCEEIANC/////w+DIAogC358IQMgBCADQiCIfCEEIANC/////w+DIAA1AggiDiAHfnwhAyAEIANCIIh8IQQgA0L/////D4MgDSAMfnwhAyAEIANCIIh8IQQgA0L/////D4NBADUCkAQiESAIfnwhAyAEIANCIIh8IQQgA0L/////D4MgBX5C/////w+DIRAgA0L/////D4MgCSAQfnwhAyAEIANCIIh8IQQgBEIgiCEDIARC/////w+DIAYgATUCDCITfnwhBCADIARCIIh8IQMgBEL/////D4MgCiAPfnwhBCADIARCIIh8IQMgBEL/////D4MgDiALfnwhBCADIARCIIh8IQMgBEL/////D4MgADUCDCISIAd+fCEEIAMgBEIgiHwhAyAEQv////8PgyANIBB+fCEEIAMgBEIgiHwhAyAEQv////8PgyARIAx+fCEEIAMgBEIgiHwhAyAEQv////8Pg0EANQKUBCIVIAh+fCEEIAMgBEIgiHwhAyAEQv////8PgyAFfkL/////D4MhFCAEQv////8PgyAJIBR+fCEEIAMgBEIgiHwhAyADQiCIIQQgA0L/////D4MgBiABNQIQIhd+fCEDIAQgA0IgiHwhBCADQv////8PgyAKIBN+fCEDIAQgA0IgiHwhBCADQv////8PgyAOIA9+fCEDIAQgA0IgiHwhBCADQv////8PgyASIAt+fCEDIAQgA0IgiHwhBCADQv////8PgyAANQIQIhYgB358IQMgBCADQiCIfCEEIANC/////w+DIA0gFH58IQMgBCADQiCIfCEEIANC/////w+DIBEgEH58IQMgBCADQiCIfCEEIANC/////w+DIBUgDH58IQMgBCADQiCIfCEEIANC/////w+DQQA1ApgEIhkgCH58IQMgBCADQiCIfCEEIANC/////w+DIAV+Qv////8PgyEYIANC/////w+DIAkgGH58IQMgBCADQiCIfCEEIARCIIghAyAEQv////8PgyAGIAE1AhQiG358IQQgAyAEQiCIfCEDIARC/////w+DIAogF358IQQgAyAEQiCIfCEDIARC/////w+DIA4gE358IQQgAyAEQiCIfCEDIARC/////w+DIBIgD358IQQgAyAEQiCIfCEDIARC/////w+DIBYgC358IQQgAyAEQiCIfCEDIARC/////w+DIAA1AhQiGiAHfnwhBCADIARCIIh8IQMgBEL/////D4MgDSAYfnwhBCADIARCIIh8IQMgBEL/////D4MgESAUfnwhBCADIARCIIh8IQMgBEL/////D4MgFSAQfnwhBCADIARCIIh8IQMgBEL/////D4MgGSAMfnwhBCADIARCIIh8IQMgBEL/////D4NBADUCnAQiHSAIfnwhBCADIARCIIh8IQMgBEL/////D4MgBX5C/////w+DIRwgBEL/////D4MgCSAcfnwhBCADIARCIIh8IQMgA0IgiCEEIANC/////w+DIAYgATUCGCIffnwhAyAEIANCIIh8IQQgA0L/////D4MgCiAbfnwhAyAEIANCIIh8IQQgA0L/////D4MgDiAXfnwhAyAEIANCIIh8IQQgA0L/////D4MgEiATfnwhAyAEIANCIIh8IQQgA0L/////D4MgFiAPfnwhAyAEIANCIIh8IQQgA0L/////D4MgGiALfnwhAyAEIANCIIh8IQQgA0L/////D4MgADUCGCIeIAd+fCEDIAQgA0IgiHwhBCADQv////8PgyANIBx+fCEDIAQgA0IgiHwhBCADQv////8PgyARIBh+fCEDIAQgA0IgiHwhBCADQv////8PgyAVIBR+fCEDIAQgA0IgiHwhBCADQv////8PgyAZIBB+fCEDIAQgA0IgiHwhBCADQv////8PgyAdIAx+fCEDIAQgA0IgiHwhBCADQv////8Pg0EANQKgBCIhIAh+fCEDIAQgA0IgiHwhBCADQv////8PgyAFfkL/////D4MhICADQv////8PgyAJICB+fCEDIAQgA0IgiHwhBCAEQiCIIQMgBEL/////D4MgBiABNQIcIiN+fCEEIAMgBEIgiHwhAyAEQv////8PgyAKIB9+fCEEIAMgBEIgiHwhAyAEQv////8PgyAOIBt+fCEEIAMgBEIgiHwhAyAEQv////8PgyASIBd+fCEEIAMgBEIgiHwhAyAEQv////8PgyAWIBN+fCEEIAMgBEIgiHwhAyAEQv////8PgyAaIA9+fCEEIAMgBEIgiHwhAyAEQv////8PgyAeIAt+fCEEIAMgBEIgiHwhAyAEQv////8PgyAANQIcIiIgB358IQQgAyAEQiCIfCEDIARC/////w+DIA0gIH58IQQgAyAEQiCIfCEDIARC/////w+DIBEgHH58IQQgAyAEQiCIfCEDIARC/////w+DIBUgGH58IQQgAyAEQiCIfCEDIARC/////w+DIBkgFH58IQQgAyAEQiCIfCEDIARC/////w+DIB0gEH58IQQgAyAEQiCIfCEDIARC/////w+DICEgDH58IQQgAyAEQiCIfCEDIARC/////w+DQQA1AqQEIiUgCH58IQQgAyAEQiCIfCEDIARC/////w+DIAV+Qv////8PgyEkIARC/////w+DIAkgJH58IQQgAyAEQiCIfCEDIANCIIghBCADQv////8PgyAKICN+fCEDIAQgA0IgiHwhBCADQv////8PgyAOIB9+fCEDIAQgA0IgiHwhBCADQv////8PgyASIBt+fCEDIAQgA0IgiHwhBCADQv////8PgyAWIBd+fCEDIAQgA0IgiHwhBCADQv////8PgyAaIBN+fCEDIAQgA0IgiHwhBCADQv////8PgyAeIA9+fCEDIAQgA0IgiHwhBCADQv////8PgyAiIAt+fCEDIAQgA0IgiHwhBCADQv////8PgyANICR+fCEDIAQgA0IgiHwhBCADQv////8PgyARICB+fCEDIAQgA0IgiHwhBCADQv////8PgyAVIBx+fCEDIAQgA0IgiHwhBCADQv////8PgyAZIBh+fCEDIAQgA0IgiHwhBCADQv////8PgyAdIBR+fCEDIAQgA0IgiHwhBCADQv////8PgyAhIBB+fCEDIAQgA0IgiHwhBCADQv////8PgyAlIAx+fCEDIAQgA0IgiHwhBCACIAM+AgAgBEIgiCEDIARC/////w+DIA4gI358IQQgAyAEQiCIfCEDIARC/////w+DIBIgH358IQQgAyAEQiCIfCEDIARC/////w+DIBYgG358IQQgAyAEQiCIfCEDIARC/////w+DIBogF358IQQgAyAEQiCIfCEDIARC/////w+DIB4gE358IQQgAyAEQiCIfCEDIARC/////w+DICIgD358IQQgAyAEQiCIfCEDIARC/////w+DIBEgJH58IQQgAyAEQiCIfCEDIARC/////w+DIBUgIH58IQQgAyAEQiCIfCEDIARC/////w+DIBkgHH58IQQgAyAEQiCIfCEDIARC/////w+DIB0gGH58IQQgAyAEQiCIfCEDIARC/////w+DICEgFH58IQQgAyAEQiCIfCEDIARC/////w+DICUgEH58IQQgAyAEQiCIfCEDIAIgBD4CBCADQiCIIQQgA0L/////D4MgEiAjfnwhAyAEIANCIIh8IQQgA0L/////D4MgFiAffnwhAyAEIANCIIh8IQQgA0L/////D4MgGiAbfnwhAyAEIANCIIh8IQQgA0L/////D4MgHiAXfnwhAyAEIANCIIh8IQQgA0L/////D4MgIiATfnwhAyAEIANCIIh8IQQgA0L/////D4MgFSAkfnwhAyAEIANCIIh8IQQgA0L/////D4MgGSAgfnwhAyAEIANCIIh8IQQgA0L/////D4MgHSAcfnwhAyAEIANCIIh8IQQgA0L/////D4MgISAYfnwhAyAEIANCIIh8IQQgA0L/////D4MgJSAUfnwhAyAEIANCIIh8IQQgAiADPgIIIARCIIghAyAEQv////8PgyAWICN+fCEEIAMgBEIgiHwhAyAEQv////8PgyAaIB9+fCEEIAMgBEIgiHwhAyAEQv////8PgyAeIBt+fCEEIAMgBEIgiHwhAyAEQv////8PgyAiIBd+fCEEIAMgBEIgiHwhAyAEQv////8PgyAZICR+fCEEIAMgBEIgiHwhAyAEQv////8PgyAdICB+fCEEIAMgBEIgiHwhAyAEQv////8PgyAhIBx+fCEEIAMgBEIgiHwhAyAEQv////8PgyAlIBh+fCEEIAMgBEIgiHwhAyACIAQ+AgwgA0IgiCEEIANC/////w+DIBogI358IQMgBCADQiCIfCEEIANC/////w+DIB4gH358IQMgBCADQiCIfCEEIANC/////w+DICIgG358IQMgBCADQiCIfCEEIANC/////w+DIB0gJH58IQMgBCADQiCIfCEEIANC/////w+DICEgIH58IQMgBCADQiCIfCEEIANC/////w+DICUgHH58IQMgBCADQiCIfCEEIAIgAz4CECAEQiCIIQMgBEL/////D4MgHiAjfnwhBCADIARCIIh8IQMgBEL/////D4MgIiAffnwhBCADIARCIIh8IQMgBEL/////D4MgISAkfnwhBCADIARCIIh8IQMgBEL/////D4MgJSAgfnwhBCADIARCIIh8IQMgAiAEPgIUIANCIIghBCADQv////8PgyAiICN+fCEDIAQgA0IgiHwhBCADQv////8PgyAlICR+fCEDIAQgA0IgiHwhBCACIAM+AhggBEIgiCEDIAIgBD4CHCADpwRAIAJBiAQgAhAHGgUgAkGIBBAFBEAgAkGIBCACEAcaCwsLuyEdAX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfkKJx5mkDiEGQgAhAkIAIQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgADUCACIHIAd+fCECIAMgAkIgiHwhAyACQv////8PgyAGfkL/////D4MhCCACQv////8Pg0EANQKIBCIJIAh+fCECIAMgAkIgiHwhAyADIQQgBEIgiCEFQgAhAkIAIQMgAkL/////D4MgByAANQIEIgp+fCECIAMgAkIgiHwhAyACQv////8Pg0IBhiECIANCAYYgAkIgiHwhAyACQv////8PgyAEQv////8Pg3whAiADIAJCIIh8IAV8IQMgAkL/////D4NBADUCjAQiDCAIfnwhAiADIAJCIIh8IQMgAkL/////D4MgBn5C/////w+DIQsgAkL/////D4MgCSALfnwhAiADIAJCIIh8IQMgAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DIAcgADUCCCINfnwhAiADIAJCIIh8IQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgCiAKfnwhAiADIAJCIIh8IQMgAkL/////D4MgBEL/////D4N8IQIgAyACQiCIfCAFfCEDIAJC/////w+DIAwgC358IQIgAyACQiCIfCEDIAJC/////w+DQQA1ApAEIg8gCH58IQIgAyACQiCIfCEDIAJC/////w+DIAZ+Qv////8PgyEOIAJC/////w+DIAkgDn58IQIgAyACQiCIfCEDIAMhBCAEQiCIIQVCACECQgAhAyACQv////8PgyAHIAA1AgwiEH58IQIgAyACQiCIfCEDIAJC/////w+DIAogDX58IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyACQv////8PgyAMIA5+fCECIAMgAkIgiHwhAyACQv////8PgyAPIAt+fCECIAMgAkIgiHwhAyACQv////8Pg0EANQKUBCISIAh+fCECIAMgAkIgiHwhAyACQv////8PgyAGfkL/////D4MhESACQv////8PgyAJIBF+fCECIAMgAkIgiHwhAyADIQQgBEIgiCEFQgAhAkIAIQMgAkL/////D4MgByAANQIQIhN+fCECIAMgAkIgiHwhAyACQv////8PgyAKIBB+fCECIAMgAkIgiHwhAyACQv////8Pg0IBhiECIANCAYYgAkIgiHwhAyACQv////8PgyANIA1+fCECIAMgAkIgiHwhAyACQv////8PgyAEQv////8Pg3whAiADIAJCIIh8IAV8IQMgAkL/////D4MgDCARfnwhAiADIAJCIIh8IQMgAkL/////D4MgDyAOfnwhAiADIAJCIIh8IQMgAkL/////D4MgEiALfnwhAiADIAJCIIh8IQMgAkL/////D4NBADUCmAQiFSAIfnwhAiADIAJCIIh8IQMgAkL/////D4MgBn5C/////w+DIRQgAkL/////D4MgCSAUfnwhAiADIAJCIIh8IQMgAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DIAcgADUCFCIWfnwhAiADIAJCIIh8IQMgAkL/////D4MgCiATfnwhAiADIAJCIIh8IQMgAkL/////D4MgDSAQfnwhAiADIAJCIIh8IQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgBEL/////D4N8IQIgAyACQiCIfCAFfCEDIAJC/////w+DIAwgFH58IQIgAyACQiCIfCEDIAJC/////w+DIA8gEX58IQIgAyACQiCIfCEDIAJC/////w+DIBIgDn58IQIgAyACQiCIfCEDIAJC/////w+DIBUgC358IQIgAyACQiCIfCEDIAJC/////w+DQQA1ApwEIhggCH58IQIgAyACQiCIfCEDIAJC/////w+DIAZ+Qv////8PgyEXIAJC/////w+DIAkgF358IQIgAyACQiCIfCEDIAMhBCAEQiCIIQVCACECQgAhAyACQv////8PgyAHIAA1AhgiGX58IQIgAyACQiCIfCEDIAJC/////w+DIAogFn58IQIgAyACQiCIfCEDIAJC/////w+DIA0gE358IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIBAgEH58IQIgAyACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyACQv////8PgyAMIBd+fCECIAMgAkIgiHwhAyACQv////8PgyAPIBR+fCECIAMgAkIgiHwhAyACQv////8PgyASIBF+fCECIAMgAkIgiHwhAyACQv////8PgyAVIA5+fCECIAMgAkIgiHwhAyACQv////8PgyAYIAt+fCECIAMgAkIgiHwhAyACQv////8Pg0EANQKgBCIbIAh+fCECIAMgAkIgiHwhAyACQv////8PgyAGfkL/////D4MhGiACQv////8PgyAJIBp+fCECIAMgAkIgiHwhAyADIQQgBEIgiCEFQgAhAkIAIQMgAkL/////D4MgByAANQIcIhx+fCECIAMgAkIgiHwhAyACQv////8PgyAKIBl+fCECIAMgAkIgiHwhAyACQv////8PgyANIBZ+fCECIAMgAkIgiHwhAyACQv////8PgyAQIBN+fCECIAMgAkIgiHwhAyACQv////8Pg0IBhiECIANCAYYgAkIgiHwhAyACQv////8PgyAEQv////8Pg3whAiADIAJCIIh8IAV8IQMgAkL/////D4MgDCAafnwhAiADIAJCIIh8IQMgAkL/////D4MgDyAXfnwhAiADIAJCIIh8IQMgAkL/////D4MgEiAUfnwhAiADIAJCIIh8IQMgAkL/////D4MgFSARfnwhAiADIAJCIIh8IQMgAkL/////D4MgGCAOfnwhAiADIAJCIIh8IQMgAkL/////D4MgGyALfnwhAiADIAJCIIh8IQMgAkL/////D4NBADUCpAQiHiAIfnwhAiADIAJCIIh8IQMgAkL/////D4MgBn5C/////w+DIR0gAkL/////D4MgCSAdfnwhAiADIAJCIIh8IQMgAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DIAogHH58IQIgAyACQiCIfCEDIAJC/////w+DIA0gGX58IQIgAyACQiCIfCEDIAJC/////w+DIBAgFn58IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIBMgE358IQIgAyACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyACQv////8PgyAMIB1+fCECIAMgAkIgiHwhAyACQv////8PgyAPIBp+fCECIAMgAkIgiHwhAyACQv////8PgyASIBd+fCECIAMgAkIgiHwhAyACQv////8PgyAVIBR+fCECIAMgAkIgiHwhAyACQv////8PgyAYIBF+fCECIAMgAkIgiHwhAyACQv////8PgyAbIA5+fCECIAMgAkIgiHwhAyACQv////8PgyAeIAt+fCECIAMgAkIgiHwhAyABIAI+AgAgAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DIA0gHH58IQIgAyACQiCIfCEDIAJC/////w+DIBAgGX58IQIgAyACQiCIfCEDIAJC/////w+DIBMgFn58IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyACQv////8PgyAPIB1+fCECIAMgAkIgiHwhAyACQv////8PgyASIBp+fCECIAMgAkIgiHwhAyACQv////8PgyAVIBd+fCECIAMgAkIgiHwhAyACQv////8PgyAYIBR+fCECIAMgAkIgiHwhAyACQv////8PgyAbIBF+fCECIAMgAkIgiHwhAyACQv////8PgyAeIA5+fCECIAMgAkIgiHwhAyABIAI+AgQgAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DIBAgHH58IQIgAyACQiCIfCEDIAJC/////w+DIBMgGX58IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIBYgFn58IQIgAyACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyACQv////8PgyASIB1+fCECIAMgAkIgiHwhAyACQv////8PgyAVIBp+fCECIAMgAkIgiHwhAyACQv////8PgyAYIBd+fCECIAMgAkIgiHwhAyACQv////8PgyAbIBR+fCECIAMgAkIgiHwhAyACQv////8PgyAeIBF+fCECIAMgAkIgiHwhAyABIAI+AgggAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DIBMgHH58IQIgAyACQiCIfCEDIAJC/////w+DIBYgGX58IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyACQv////8PgyAVIB1+fCECIAMgAkIgiHwhAyACQv////8PgyAYIBp+fCECIAMgAkIgiHwhAyACQv////8PgyAbIBd+fCECIAMgAkIgiHwhAyACQv////8PgyAeIBR+fCECIAMgAkIgiHwhAyABIAI+AgwgAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DIBYgHH58IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIBkgGX58IQIgAyACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyACQv////8PgyAYIB1+fCECIAMgAkIgiHwhAyACQv////8PgyAbIBp+fCECIAMgAkIgiHwhAyACQv////8PgyAeIBd+fCECIAMgAkIgiHwhAyABIAI+AhAgAyEEIARCIIghBUIAIQJCACED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AgAgBH58IQMgACADPgIAIAA1AgQgA0IgiHxByA41AgQgBH58IQMgACADPgIEIAA1AgggA0IgiHxByA41AgggBH58IQMgACADPgIIIAA1AgwgA0IgiHxByA41AgwgBH58IQMgACADPgIMIAA1AhAgA0IgiHxByA41AhAgBH58IQMgACADPgIQIAA1AhQgA0IgiHxByA41AhQgBH58IQMgACADPgIUIAA1AhggA0IgiHxByA41AhggBH58IQMgACADPgIYIAA1AhwgA0IgiHxByA41AhwgBH58IQMgACADPgIcQagRIANCIIg+AgBCACEDIAA1AgQgAn5C/////w+DIQQgADUCBCADQiCIfEHIDjUCACAEfnwhAyAAIAM+AgQgADUCCCADQiCIfEHIDjUCBCAEfnwhAyAAIAM+AgggADUCDCADQiCIfEHIDjUCCCAEfnwhAyAAIAM+AgwgADUCECADQiCIfEHIDjUCDCAEfnwhAyAAIAM+AhAgADUCFCADQiCIfEHIDjUCECAEfnwhAyAAIAM+AhQgADUCGCADQiCIfEHIDjUCFCAEfnwhAyAAIAM+AhggADUCHCADQiCIfEHIDjUCGCAEfnwhAyAAIAM+AhwgADUCICADQiCIfEHIDjUCHCAEfnwhAyAAIAM+AiBBqBEgA0IgiD4CBEIAIQMgADUCCCACfkL/////D4MhBCAANQIIIANCIIh8QcgONQIAIAR+fCEDIAAgAz4CCCAANQIMIANCIIh8QcgONQIEIAR+fCEDIAAgAz4CDCAANQIQIANCIIh8QcgONQIIIAR+fCEDIAAgAz4CECAANQIUIANCIIh8QcgONQIMIAR+fCEDIAAgAz4CFCAANQIYIANCIIh8QcgONQIQIAR+fCEDIAAgAz4CGCAANQIcIANCIIh8QcgONQIUIAR+fCEDIAAgAz4CHCAANQIgIANCIIh8QcgONQIYIAR+fCEDIAAgAz4CICAANQIkIANCIIh8QcgONQIcIAR+fCEDIAAgAz4CJEGoESADQiCIPgIIQgAhAyAANQIMIAJ+Qv////8PgyEEIAA1AgwgA0IgiHxByA41AgAgBH58IQMgACADPgIMIAA1AhAgA0IgiHxByA41AgQgBH58IQMgACADPgIQIAA1AhQgA0IgiHxByA41AgggBH58IQMgACADPgIUIAA1AhggA0IgiHxByA41AgwgBH58IQMgACADPgIYIAA1AhwgA0IgiHxByA41AhAgBH58IQMgACADPgIcIAA1AiAgA0IgiHxByA41AhQgBH58IQMgACADPgIgIAA1AiQgA0IgiHxByA41AhggBH58IQMgACADPgIkIAA1AiggA0IgiHxByA41AhwgBH58IQMgACADPgIoQagRIANCIIg+AgxCACEDIAA1AhAgAn5C/////w+DIQQgADUCECADQiCIfEHIDjUCACAEfnwhAyAAIAM+AhAgADUCFCADQiCIfEHIDjUCBCAEfnwhAyAAIAM+AhQgADUCGCADQiCIfEHIDjUCCCAEfnwhAyAAIAM+AhggADUCHCADQiCIfEHIDjUCDCAEfnwhAyAAIAM+AhwgADUCICADQiCIfEHIDjUCECAEfnwhAyAAIAM+AiAgADUCJCADQiCIfEHIDjUCFCAEfnwhAyAAIAM+AiQgADUCKCADQiCIfEHIDjUCGCAEfnwhAyAAIAM+AiggADUCLCADQiCIfEHIDjUCHCAEfnwhAyAAIAM+AixBqBEgA0IgiD4CEEIAIQMgADUCFCACfkL/////D4MhBCAANQIUIANCIIh8QcgONQIAIAR+fCEDIAAgAz4CFCAANQIYIANCIIh8QcgONQIEIAR+fCEDIAAgAz4CGCAANQIcIANCIIh8QcgONQIIIAR+fCEDIAAgAz4CHCAANQIgIANCIIh8QcgONQIMIAR+fCEDIAAgAz4CICAANQIkIANCIIh8QcgONQIQIAR+fCEDIAAgAz4CJCAANQIoIANCIIh8QcgONQIUIAR+fCEDIAAgAz4CKCAANQIsIANCIIh8QcgONQIYIAR+fCEDIAAgAz4CLCAANQIwIANCIIh8QcgONQIcIAR+fCEDIAAgAz4CMEGoESADQiCIPgIUQgAhAyAANQIYIAJ+Qv////8PgyEEIAA1AhggA0IgiHxByA41AgAgBH58IQMgACADPgIYIAA1AhwgA0IgiHxByA41AgQgBH58IQMgACADPgIcIAA1AiAgA0IgiHxByA41AgggBH58IQMgACADPgIgIAA1AiQgA0IgiHxByA41AgwgBH58IQMgACADPgIkIAA1AiggA0IgiHxByA41AhAgBH58IQMgACADPgIoIAA1AiwgA0IgiHxByA41AhQgBH58IQMgACADPgIsIAA1AjAgA0IgiHxByA41AhggBH58IQMgACADPgIwIAA1AjQgA0IgiHxByA41AhwgBH58IQMgACADPgI0QagRIANCIIg+AhhCACEDIAA1AhwgAn5C/////w+DIQQgADUCHCADQiCIfEHIDjUCACAEfnwhAyAAIAM+AhwgADUCICADQiCIfEHIDjUCBCAEfnwhAyAAIAM+AiAgADUCJCADQiCIfEHIDjUCCCAEfnwhAyAAIAM+AiQgADUCKCADQiCIfEHIDjUCDCAEfnwhAyAAIAM+AiggADUCLCADQiCIfEHIDjUCECAEfnwhAyAAIAM+AiwgADUCMCADQiCIfEHIDjUCFCAEfnwhAyAAIAM+AjAgADUCNCADQiCIfEHIDjUCGCAEfnwhAyAAIAM+AjQgADUCOCADQiCIfEHIDjUCHCAEfnwhAyAAIAM+AjhBqBEgA0IgiD4CHEGoESAAQSBqIAEQJgu+HyMBfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+Qv////8OIQUgA0L/////D4MgADUCACIGIAE1AgAiB358IQMgBCADQiCIfCEEIANC/////w+DIAV+Qv////8PgyEIIANC/////w+DQQA1AsgOIgkgCH58IQMgBCADQiCIfCEEIARCIIghAyAEQv////8PgyAGIAE1AgQiC358IQQgAyAEQiCIfCEDIARC/////w+DIAA1AgQiCiAHfnwhBCADIARCIIh8IQMgBEL/////D4NBADUCzA4iDSAIfnwhBCADIARCIIh8IQMgBEL/////D4MgBX5C/////w+DIQwgBEL/////D4MgCSAMfnwhBCADIARCIIh8IQMgA0IgiCEEIANC/////w+DIAYgATUCCCIPfnwhAyAEIANCIIh8IQQgA0L/////D4MgCiALfnwhAyAEIANCIIh8IQQgA0L/////D4MgADUCCCIOIAd+fCEDIAQgA0IgiHwhBCADQv////8PgyANIAx+fCEDIAQgA0IgiHwhBCADQv////8Pg0EANQLQDiIRIAh+fCEDIAQgA0IgiHwhBCADQv////8PgyAFfkL/////D4MhECADQv////8PgyAJIBB+fCEDIAQgA0IgiHwhBCAEQiCIIQMgBEL/////D4MgBiABNQIMIhN+fCEEIAMgBEIgiHwhAyAEQv////8PgyAKIA9+fCEEIAMgBEIgiHwhAyAEQv////8PgyAOIAt+fCEEIAMgBEIgiHwhAyAEQv////8PgyAANQIMIhIgB358IQQgAyAEQiCIfCEDIARC/////w+DIA0gEH58IQQgAyAEQiCIfCEDIARC/////w+DIBEgDH58IQQgAyAEQiCIfCEDIARC/////w+DQQA1AtQOIhUgCH58IQQgAyAEQiCIfCEDIARC/////w+DIAV+Qv////8PgyEUIARC/////w+DIAkgFH58IQQgAyAEQiCIfCEDIANCIIghBCADQv////8PgyAGIAE1AhAiF358IQMgBCADQiCIfCEEIANC/////w+DIAogE358IQMgBCADQiCIfCEEIANC/////w+DIA4gD358IQMgBCADQiCIfCEEIANC/////w+DIBIgC358IQMgBCADQiCIfCEEIANC/////w+DIAA1AhAiFiAHfnwhAyAEIANCIIh8IQQgA0L/////D4MgDSAUfnwhAyAEIANCIIh8IQQgA0L/////D4MgESAQfnwhAyAEIANCIIh8IQQgA0L/////D4MgFSAMfnwhAyAEIANCIIh8IQQgA0L/////D4NBADUC2A4iGSAIfnwhAyAEIANCIIh8IQQgA0L/////D4MgBX5C/////w+DIRggA0L/////D4MgCSAYfnwhAyAEIANCIIh8IQQgBEIgiCEDIARC/////w+DIAYgATUCFCIbfnwhBCADIARCIIh8IQMgBEL/////D4MgCiAXfnwhBCADIARCIIh8IQMgBEL/////D4MgDiATfnwhBCADIARCIIh8IQMgBEL/////D4MgEiAPfnwhBCADIARCIIh8IQMgBEL/////D4MgFiALfnwhBCADIARCIIh8IQMgBEL/////D4MgADUCFCIaIAd+fCEEIAMgBEIgiHwhAyAEQv////8PgyANIBh+fCEEIAMgBEIgiHwhAyAEQv////8PgyARIBR+fCEEIAMgBEIgiHwhAyAEQv////8PgyAVIBB+fCEEIAMgBEIgiHwhAyAEQv////8PgyAZIAx+fCEEIAMgBEIgiHwhAyAEQv////8Pg0EANQLcDiIdIAh+fCEEIAMgBEIgiHwhAyAEQv////8PgyAFfkL/////D4MhHCAEQv////8PgyAJIBx+fCEEIAMgBEIgiHwhAyADQiCIIQQgA0L/////D4MgBiABNQIYIh9+fCEDIAQgA0IgiHwhBCADQv////8PgyAKIBt+fCEDIAQgA0IgiHwhBCADQv////8PgyAOIBd+fCEDIAQgA0IgiHwhBCADQv////8PgyASIBN+fCEDIAQgA0IgiHwhBCADQv////8PgyAWIA9+fCEDIAQgA0IgiHwhBCADQv////8PgyAaIAt+fCEDIAQgA0IgiHwhBCADQv////8PgyAANQIYIh4gB358IQMgBCADQiCIfCEEIANC/////w+DIA0gHH58IQMgBCADQiCIfCEEIANC/////w+DIBEgGH58IQMgBCADQiCIfCEEIANC/////w+DIBUgFH58IQMgBCADQiCIfCEEIANC/////w+DIBkgEH58IQMgBCADQiCIfCEEIANC/////w+DIB0gDH58IQMgBCADQiCIfCEEIANC/////w+DQQA1AuAOIiEgCH58IQMgBCADQiCIfCEEIANC/////w+DIAV+Qv////8PgyEgIANC/////w+DIAkgIH58IQMgBCADQiCIfCEEIARCIIghAyAEQv////8PgyAGIAE1AhwiI358IQQgAyAEQiCIfCEDIARC/////w+DIAogH358IQQgAyAEQiCIfCEDIARC/////w+DIA4gG358IQQgAyAEQiCIfCEDIARC/////w+DIBIgF358IQQgAyAEQiCIfCEDIARC/////w+DIBYgE358IQQgAyAEQiCIfCEDIARC/////w+DIBogD358IQQgAyAEQiCIfCEDIARC/////w+DIB4gC358IQQgAyAEQiCIfCEDIARC/////w+DIAA1AhwiIiAHfnwhBCADIARCIIh8IQMgBEL/////D4MgDSAgfnwhBCADIARCIIh8IQMgBEL/////D4MgESAcfnwhBCADIARCIIh8IQMgBEL/////D4MgFSAYfnwhBCADIARCIIh8IQMgBEL/////D4MgGSAUfnwhBCADIARCIIh8IQMgBEL/////D4MgHSAQfnwhBCADIARCIIh8IQMgBEL/////D4MgISAMfnwhBCADIARCIIh8IQMgBEL/////D4NBADUC5A4iJSAIfnwhBCADIARCIIh8IQMgBEL/////D4MgBX5C/////w+DISQgBEL/////D4MgCSAkfnwhBCADIARCIIh8IQMgA0IgiCEEIANC/////w+DIAogI358IQMgBCADQiCIfCEEIANC/////w+DIA4gH358IQMgBCADQiCIfCEEIANC/////w+DIBIgG358IQMgBCADQiCIfCEEIANC/////w+DIBYgF358IQMgBCADQiCIfCEEIANC/////w+DIBogE358IQMgBCADQiCIfCEEIANC/////w+DIB4gD358IQMgBCADQiCIfCEEIANC/////w+DICIgC358IQMgBCADQiCIfCEEIANC/////w+DIA0gJH58IQMgBCADQiCIfCEEIANC/////w+DIBEgIH58IQMgBCADQiCIfCEEIANC/////w+DIBUgHH58IQMgBCADQiCIfCEEIANC/////w+DIBkgGH58IQMgBCADQiCIfCEEIANC/////w+DIB0gFH58IQMgBCADQiCIfCEEIANC/////w+DICEgEH58IQMgBCADQiCIfCEEIANC/////w+DICUgDH58IQMgBCADQiCIfCEEIAIgAz4CACAEQiCIIQMgBEL/////D4MgDiAjfnwhBCADIARCIIh8IQMgBEL/////D4MgEiAffnwhBCADIARCIIh8IQMgBEL/////D4MgFiAbfnwhBCADIARCIIh8IQMgBEL/////D4MgGiAXfnwhBCADIARCIIh8IQMgBEL/////D4MgHiATfnwhBCADIARCIIh8IQMgBEL/////D4MgIiAPfnwhBCADIARCIIh8IQMgBEL/////D4MgESAkfnwhBCADIARCIIh8IQMgBEL/////D4MgFSAgfnwhBCADIARCIIh8IQMgBEL/////D4MgGSAcfnwhBCADIARCIIh8IQMgBEL/////D4MgHSAYfnwhBCADIARCIIh8IQMgBEL/////D4MgISAUfnwhBCADIARCIIh8IQMgBEL/////D4MgJSAQfnwhBCADIARCIIh8IQMgAiAEPgIEIANCIIghBCADQv////8PgyASICN+fCEDIAQgA0IgiHwhBCADQv////8PgyAWIB9+fCEDIAQgA0IgiHwhBCADQv////8PgyAaIBt+fCEDIAQgA0IgiHwhBCADQv////8PgyAeIBd+fCEDIAQgA0IgiHwhBCADQv////8PgyAiIBN+fCEDIAQgA0IgiHwhBCADQv////8PgyAVICR+fCEDIAQgA0IgiHwhBCADQv////8PgyAZICB+fCEDIAQgA0IgiHwhBCADQv////8PgyAdIBx+fCEDIAQgA0IgiHwhBCADQv////8PgyAhIBh+fCEDIAQgA0IgiHwhBCADQv////8PgyAlIBR+fCEDIAQgA0IgiHwhBCACIAM+AgggBEIgiCEDIARC/////w+DIBYgI358IQQgAyAEQiCIfCEDIARC/////w+DIBogH358IQQgAyAEQiCIfCEDIARC/////w+DIB4gG358IQQgAyAEQiCIfCEDIARC/////w+DICIgF358IQQgAyAEQiCIfCEDIARC/////w+DIBkgJH58IQQgAyAEQiCIfCEDIARC/////w+DIB0gIH58IQQgAyAEQiCIfCEDIARC/////w+DICEgHH58IQQgAyAEQiCIfCEDIARC/////w+DICUgGH58IQQgAyAEQiCIfCEDIAIgBD4CDCADQiCIIQQgA0L/////D4MgGiAjfnwhAyAEIANCIIh8IQQgA0L/////D4MgHiAffnwhAyAEIANCIIh8IQQgA0L/////D4MgIiAbfnwhAyAEIANCIIh8IQQgA0L/////D4MgHSAkfnwhAyAEIANCIIh8IQQgA0L/////D4MgISAgfnwhAyAEIANCIIh8IQQgA0L/////D4MgJSAcfnwhAyAEIANCIIh8IQQgAiADPgIQIARCIIghAyAEQv////8PgyAeICN+fCEEIAMgBEIgiHwhAyAEQv////8PgyAiIB9+fCEEIAMgBEIgiHwhAyAEQv////8PgyAhICR+fCEEIAMgBEIgiHwhAyAEQv////8PgyAlICB+fCEEIAMgBEIgiHwhAyACIAQ+AhQgA0IgiCEEIANC/////w+DICIgI358IQMgBCADQiCIfCEEIANC/////w+DICUgJH58IQMgBCADQiCIfCEEIAIgAz4CGCAEQiCIIQMgAiAEPgIcIAOnBEAgAkHIDiACEAcaBSACQcgOEAUEQCACQcgOIAIQBxoLCwu7IR0BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+Qv////8OIQZCACECQgAhAyACQv////8Pg0IBhiECIANCAYYgAkIgiHwhAyACQv////8PgyAANQIAIgcgB358IQIgAyACQiCIfCEDIAJC/////w+DIAZ+Qv////8PgyEIIAJC/////w+DQQA1AsgOIgkgCH58IQIgAyACQiCIfCEDIAMhBCAEQiCIIQVCACECQgAhAyACQv////8PgyAHIAA1AgQiCn58IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyACQv////8Pg0EANQLMDiIMIAh+fCECIAMgAkIgiHwhAyACQv////8PgyAGfkL/////D4MhCyACQv////8PgyAJIAt+fCECIAMgAkIgiHwhAyADIQQgBEIgiCEFQgAhAkIAIQMgAkL/////D4MgByAANQIIIg1+fCECIAMgAkIgiHwhAyACQv////8Pg0IBhiECIANCAYYgAkIgiHwhAyACQv////8PgyAKIAp+fCECIAMgAkIgiHwhAyACQv////8PgyAEQv////8Pg3whAiADIAJCIIh8IAV8IQMgAkL/////D4MgDCALfnwhAiADIAJCIIh8IQMgAkL/////D4NBADUC0A4iDyAIfnwhAiADIAJCIIh8IQMgAkL/////D4MgBn5C/////w+DIQ4gAkL/////D4MgCSAOfnwhAiADIAJCIIh8IQMgAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DIAcgADUCDCIQfnwhAiADIAJCIIh8IQMgAkL/////D4MgCiANfnwhAiADIAJCIIh8IQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgBEL/////D4N8IQIgAyACQiCIfCAFfCEDIAJC/////w+DIAwgDn58IQIgAyACQiCIfCEDIAJC/////w+DIA8gC358IQIgAyACQiCIfCEDIAJC/////w+DQQA1AtQOIhIgCH58IQIgAyACQiCIfCEDIAJC/////w+DIAZ+Qv////8PgyERIAJC/////w+DIAkgEX58IQIgAyACQiCIfCEDIAMhBCAEQiCIIQVCACECQgAhAyACQv////8PgyAHIAA1AhAiE358IQIgAyACQiCIfCEDIAJC/////w+DIAogEH58IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIA0gDX58IQIgAyACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyACQv////8PgyAMIBF+fCECIAMgAkIgiHwhAyACQv////8PgyAPIA5+fCECIAMgAkIgiHwhAyACQv////8PgyASIAt+fCECIAMgAkIgiHwhAyACQv////8Pg0EANQLYDiIVIAh+fCECIAMgAkIgiHwhAyACQv////8PgyAGfkL/////D4MhFCACQv////8PgyAJIBR+fCECIAMgAkIgiHwhAyADIQQgBEIgiCEFQgAhAkIAIQMgAkL/////D4MgByAANQIUIhZ+fCECIAMgAkIgiHwhAyACQv////8PgyAKIBN+fCECIAMgAkIgiHwhAyACQv////8PgyANIBB+fCECIAMgAkIgiHwhAyACQv////8Pg0IBhiECIANCAYYgAkIgiHwhAyACQv////8PgyAEQv////8Pg3whAiADIAJCIIh8IAV8IQMgAkL/////D4MgDCAUfnwhAiADIAJCIIh8IQMgAkL/////D4MgDyARfnwhAiADIAJCIIh8IQMgAkL/////D4MgEiAOfnwhAiADIAJCIIh8IQMgAkL/////D4MgFSALfnwhAiADIAJCIIh8IQMgAkL/////D4NBADUC3A4iGCAIfnwhAiADIAJCIIh8IQMgAkL/////D4MgBn5C/////w+DIRcgAkL/////D4MgCSAXfnwhAiADIAJCIIh8IQMgAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DIAcgADUCGCIZfnwhAiADIAJCIIh8IQMgAkL/////D4MgCiAWfnwhAiADIAJCIIh8IQMgAkL/////D4MgDSATfnwhAiADIAJCIIh8IQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgECAQfnwhAiADIAJCIIh8IQMgAkL/////D4MgBEL/////D4N8IQIgAyACQiCIfCAFfCEDIAJC/////w+DIAwgF358IQIgAyACQiCIfCEDIAJC/////w+DIA8gFH58IQIgAyACQiCIfCEDIAJC/////w+DIBIgEX58IQIgAyACQiCIfCEDIAJC/////w+DIBUgDn58IQIgAyACQiCIfCEDIAJC/////w+DIBggC358IQIgAyACQiCIfCEDIAJC/////w+DQQA1AuAOIhsgCH58IQIgAyACQiCIfCEDIAJC/////w+DIAZ+Qv////8PgyEaIAJC/////w+DIAkgGn58IQIgAyACQiCIfCEDIAMhBCAEQiCIIQVCACECQgAhAyACQv////8PgyAHIAA1AhwiHH58IQIgAyACQiCIfCEDIAJC/////w+DIAogGX58IQIgAyACQiCIfCEDIAJC/////w+DIA0gFn58IQIgAyACQiCIfCEDIAJC/////w+DIBAgE358IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyACQv////8PgyAMIBp+fCECIAMgAkIgiHwhAyACQv////8PgyAPIBd+fCECIAMgAkIgiHwhAyACQv////8PgyASIBR+fCECIAMgAkIgiHwhAyACQv////8PgyAVIBF+fCECIAMgAkIgiHwhAyACQv////8PgyAYIA5+fCECIAMgAkIgiHwhAyACQv////8PgyAbIAt+fCECIAMgAkIgiHwhAyACQv////8Pg0EANQLkDiIeIAh+fCECIAMgAkIgiHwhAyACQv////8PgyAGfkL/////D4MhHSACQv////8PgyAJIB1+fCECIAMgAkIgiHwhAyADIQQgBEIgiCEFQgAhAkIAIQMgAkL/////D4MgCiAcfnwhAiADIAJCIIh8IQMgAkL/////D4MgDSAZfnwhAiADIAJCIIh8IQMgAkL/////D4MgECAWfnwhAiADIAJCIIh8IQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgEyATfnwhAiADIAJCIIh8IQMgAkL/////D4MgBEL/////D4N8IQIgAyACQiCIfCAFfCEDIAJC/////w+DIAwgHX58IQIgAyACQiCIfCEDIAJC/////w+DIA8gGn58IQIgAyACQiCIfCEDIAJC/////w+DIBIgF358IQIgAyACQiCIfCEDIAJC/////w+DIBUgFH58IQIgAyACQiCIfCEDIAJC/////w+DIBggEX58IQIgAyACQiCIfCEDIAJC/////w+DIBsgDn58IQIgAyACQiCIfCEDIAJC/////w+DIB4gC358IQIgAyACQiCIfCEDIAEgAj4CACADIQQgBEIgiCEFQgAhAkIAIQMgAkL/////D4MgDSAcfnwhAiADIAJCIIh8IQMgAkL/////D4MgECAZfnwhAiADIAJCIIh8IQMgAkL/////D4MgEyAWfnwhAiADIAJCIIh8IQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgBEL/////D4N8IQIgAyACQiCIfCAFfCEDIAJC/////w+DIA8gHX58IQIgAyACQiCIfCEDIAJC/////w+DIBIgGn58IQIgAyACQiCIfCEDIAJC/////w+DIBUgF358IQIgAyACQiCIfCEDIAJC/////w+DIBggFH58IQIgAyACQiCIfCEDIAJC/////w+DIBsgEX58IQIgAyACQiCIfCEDIAJC/////w+DIB4gDn58IQIgAyACQiCIfCEDIAEgAj4CBCADIQQgBEIgiCEFQgAhAkIAIQMgAkL/////D4MgECAcfnwhAiADIAJCIIh8IQMgAkL/////D4MgEyAZfnwhAiADIAJCIIh8IQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgFiAWfnwhAiADIAJCIIh8IQMgAkL/////D4MgBEL/////D4N8IQIgAyACQiCIfCAFfCEDIAJC/////w+DIBIgHX58IQIgAyACQiCIfCEDIAJC/////w+DIBUgGn58IQIgAyACQiCIfCEDIAJC/////w+DIBggF358IQIgAyACQiCIfCEDIAJC/////w+DIBsgFH58IQIgAyACQiCIfCEDIAJC/////w+DIB4gEX58IQIgAyACQiCIfCEDIAEgAj4CCCADIQQgBEIgiCEFQgAhAkIAIQMgAkL/////D4MgEyAcfnwhAiADIAJCIIh8IQMgAkL/////D4MgFiAZfnwhAiADIAJCIIh8IQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgBEL/////D4N8IQIgAyACQiCIfCAFfCEDIAJC/////w+DIBUgHX58IQIgAyACQiCIfCEDIAJC/////w+DIBggGn58IQIgAyACQiCIfCEDIAJC/////w+DIBsgF358IQIgAyACQiCIfCEDIAJC/////w+DIB4gFH58IQIgAyACQiCIfCEDIAEgAj4CDCADIQQgBEIgiCEFQgAhAkIAIQMgAkL/////D4MgFiAcfnwhAiADIAJCIIh8IQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgGSAZfnwhAiADIAJCIIh8IQMgAkL/////D4MgBEL/////D4N8IQIgAyACQiCIfCAFfCEDIAJC/////w+DIBggHX58IQIgAyACQiCIfCEDIAJC/////w+DIBsgGn58IQIgAyACQiCIfCEDIAJC/////w+DIB4gF358IQIgAyACQiCIfCEDIAEgAj4CECADIQQgBEIgiCEFQgAhAkIAIQMgAkL/////D4MgGSAcfnwhAiADIAJCIIh8IQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgBEL/////D4N8IQIgAyACQiCIfCAFfCEDIAJC/////w+DIBsgHX58IQIgAyACQiCIfCEDIAJC/////w+DIB4gGn58IQIgAyACQiCIfCEDIAEgAj4CFCADIQQgBEIgiCEFQgAhAkIAIQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgHCAcfnwhAiADIAJCIIh8IQMgAkL/////D4MgBEL/////D4N8IQIgAyACQiCIfCAFfCEDIAJC/////w+DIB4gHX58IQIgAyACQiCIfCEDIAEgAj4CGCADIQQgBEIgiCEFIAEgBD4CHCAFpwRAIAFByA4gARAHGgUgAUHIDhAFBEAgAUHIDiABEAcaCwsLCgAgACAAIAEQKgsLACAAQYgPIAEQKgsVACAAQagVEABByBUQAUGoFSABECkLEQAgAEHoFRAuQegVQYgQEAULJAAgABACBEBBAA8LIABBiBYQLkGIFkGIEBAFBEBBfw8LQQEPCxcAIAAgARAuIAFByA4gARAOIAEgARAtCwkAQagPIAAQAAvLAQQBfwF/AX8BfyACEAFBICEFIAAhAwJAA0AgBSABSw0BIAVBIEYEQEGoFhAyBUGoFkGID0GoFhAqCyADQagWQcgWECogAkHIFiACECYgA0EgaiEDIAVBIGohBQwACwsgAUEgcCEEIARFBEAPC0HIFhABQQAhBgJAA0AgBiAERg0BIAYgAy0AADoAyBYgA0EBaiEDIAZBAWohBgwACwsgBUEgRgRAQagWEDIFQagWQYgPQagWECoLQcgWQagWQcgWECog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EEGIJUHIJCACEBEgAkHIJSACEBEgAEEgakHIJEHoJRAUQeglQeglQeglEBBBqCUgAiACQSBqEBEgAkEgakHoJCACQSBqEBQgAkEgakHoJSACQSBqEBEgA0HIIyACQcAAahAQIAJBwABqIAJBwABqEBUgAkHAAGpByCIgAkHAAGoQESACQcAAakHoIyACQcAAahARC7wDAgF/AX8gAEHAAGohAyABQcAAaiEEIAAQQARAIAEgAhBEDwsgARBABEAgACACEEQPCyADEA8EQCABIAAgAhBMDwsgBBAPBEAgACABIAIQTA8LIANBiCYQFSAEQagmEBUgAEGoJkHIJhAUIAFBiCZB6CYQFCADQYgmQYgnEBQgBEGoJkGoJxAUIABBIGpBqCdByCcQFCABQSBqQYgnQegnEBRByCZB6CYQBARAQcgnQegnEAQEQCAAIAIQSg8LC0HoJkHIJkGIKBARQegnQcgnQagoEBFBiChBiChByCgQEEHIKEHIKBAVQYgoQcgoQegoEBRBqChBqChBiCkQEEHIJkHIKEHIKRAUQYgpQagpEBVByClByClB6CkQEEGoKUHoKCACEBEgAkHoKSACEBFByCdB6ChBiCoQFEGIKkGIKkGIKhAQQcgpIAIgAkEgahARIAJBIGpBiCkgAkEgahAUIAJBIGpBiCogAkEgahARIAMgBCACQcAAahAQIAJBwABqIAJBwABqEBUgAkHAAGpBiCYgAkHAAGoQESACQcAAakGoJiACQcAAahARIAJBwABqQYgoIAJBwABqEBQLFAAgACABEAAgAEEgaiABQSBqEBILIgAgACABEAAgAEEgaiABQSBqEBIgAEHAAGogAUHAAGoQAAsSACABQagqEE4gAEGoKiACEEsLEgAgAUGIKxBOIABBiCsgAhBMCxIAIAFB6CsQTyAAQegrIAIQTQsUACAAIAEQGCAAQSBqIAFBIGoQGAsiACAAIAEQGCAAQSBqIAFBIGoQGCAAQcAAaiABQcAAahAYCxQAIAAgARAXIABBIGogAUEgahAXCyIAIAAgARAXIABBIGogAUEgahAXIABBwABqIAFBwABqEBcLSwAgABBABEAgARABIAFBIGoQAQUgAEHAAGpByCwQG0HILEHoLBAVQcgsQegsQYgtEBQgAEHoLCABEBQgAEEgakGILSABQSBqEBQLCzEAIABB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AEGI4gAQhQFBiOIAQYjiABCMASAAQajgAEEgQcjgABCWAUHI4ABBiOEAEIkBIABBiOEAQYjhABCHAUGI4QBByOEAEI0BQcjhAEGI4QBByOEAEIcBQcjhAEGI4gAQkAEEQEEADwtBAQ8LEQAgABCCASAAQcAAahCCAXELCwAgAEGAAWoQggELEAAgABCEASAAQcAAahCEAQsZACAAEIQBIABBwABqEIUBIABBgAFqEIQBC6IBACABIAApAwA3AwAgASAAKQMINwMIIAEgACkDEDcDECABIAApAxg3AxggASAAKQMgNwMgIAEgACkDKDcDKCABIAApAzA3AzAgASAAKQM4NwM4IAEgACkDQDcDQCABIAApA0g3A0ggASAAKQNQNwNQIAEgACkDWDcDWCABIAApA2A3A2AgASAAKQNoNwNoIAEgACkDcDcDcCABIAApA3g3A3gLggIAIAEgACkDADcDACABIAApAwg3AwggASAAKQMQNwMQIAEgACkDGDcDGCABIAApAyA3AyAgASAAKQMoNwMoIAEgACkDMDcDMCABIAApAzg3AzggASAAKQNANwNAIAEgACkDSDcDSCABIAApA1A3A1AgASAAKQNYNwNYIAEgACkDYDcDYCABIAApA2g3A2ggASAAKQNwNwNwIAEgACkDeDcDeCABIAApA4ABNwOAASABIAApA4gBNwOIASABIAApA5ABNwOQASABIAApA5gBNwOYASABIAApA6ABNwOgASABIAApA6gBNwOoASABIAApA7ABNwOwASABIAApA7gBNwO4AQsvACAAEJkBBEAgARCcAQUgAUGAAWoQhQEgAEHAAGogAUHAAGoQhgEgACABEIYBCwscAQF/IAAgARCQASAAQcAAaiABQcAAahCQAXEPC4sBAQF/IABBgAFqIQIgABCaAQRAIAEQmQEPCyABEJkBBEBBAA8LIAIQgwEEQCAAIAEQoAEPCyACQYjjABCJASABQYjjAEHI4wAQhwEgAkGI4wBBiOQAEIcBIAFBwABqQYjkAEHI5AAQhwEgAEHI4wAQkAEEQCAAQcAAakHI5AAQkAEEQEEBDwsLQQAPC9kBAgF/AX8gAEGAAWohAiABQYABaiEDIAAQmgEEQCABEJoBDwsgARCaAQRAQQAPCyACEIMBBEAgASAAEKEBDwsgAxCDAQRAIAAgARChAQ8L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ACAAQeAAaiABQeAAahASIAFBwABqQbCFBCABQcAAahCHASAAQYABaiABQYABahAAIABBoAFqIAFBoAFqEBIgAUGAAWpB8IUEIAFBgAFqEIcBIABBwAFqIAFBwAFqEAAgAEHgAWogAUHgAWoQEiABQcABakGwhgQgAUHAAWoQhwEgAEGAAmogAUGAAmoQACAAQaACaiABQaACahASIAFBgAJqQfCGBCABQYACahCHASAAQcACaiABQcACahAAIABB4AJqIAFB4AJqEBIgAUHAAmpBsIcEIAFBwAJqEIcBC2wAIABB8IcEIAEQhwEgAEHAAGpBsIgEIAFBwABqEIcBIABBgAFqQfCIBCABQYABahCHASAAQcABakGwiQQgAUHAAWoQhwEgAEGAAmpB8IkEIAFBgAJqEIcBIABBwAJqQbCKBCABQcACahCHAQuKAgAgACABEAAgAEEgaiABQSBqEBIgAUHwigQgARCHASAAQcAAaiABQcAAahAAIABB4ABqIAFB4ABqEBIgAUHAAGpBsIsEIAFBwABqEIcBIABBgAFqIAFBgAFqEAAgAEGgAWogAUGgAWoQEiABQYABakHwiwQgAUGAAWoQhwEgAEHAAWogAUHAAWoQACAAQeABaiABQeABahASIAFBwAFqQbCMBCABQcABahCHASAAQYACaiABQYACahAAIABBoAJqIAFBoAJqEBIgAUGAAmpB8IwEIAFBgAJqEIcBIABBwAJqIAFBwAJqEAAgAEHgAmogAUHgAmoQEiABQcACakGwjQQgAUHAAmoQhwELbAAgAEHwjQQgARCHASAAQcAAakGwjgQgAUHAAGoQhwEgAEGAAWpB8I4EIAFBgAFqEIcBIABBwAFqQbCPBCABQcABahCHASAAQYACakHwjwQgAUGAAmoQhwEgAEHAAmpBsJAEIAFBwAJqEIcBC4oCACAAIAEQACAAQSBqIAFBIGoQEiABQfCQBCABEIcBIABBwABqIAFBwABqEAAgAEHgAGogAUHgAGoQEiABQcAAakGwkQQgAUHAAGoQhwEgAEGAAWogAUGAAWoQACAAQaABaiABQaABahASIAFBgAFqQfCRBCABQYABahCHASAAQcABaiABQcABahAAIABB4AFqIAFB4AFqEBIgAUHAAWpBsJIEIAFBwAFqEIcBIABBgAJqIAFBgAJqEAAgAEGgAmogAUGgAmoQEiABQYACakHwkgQgAUGAAmoQhwEgAEHAAmogAUHAAmoQACAAQeACaiABQeACahASIAFBwAJqQbCTBCABQcACahCHAQtsACAAQfCTBCABEIcBIABBwABqQbCUBCABQcAAahCHASAAQYABakHwlAQgAUGAAWoQhwEgAEHAAWpBsJUEIAFBwAFqEIcBIABBgAJqQfCVBCABQYACahCHASAAQcACakGwlgQgAUHAAmoQhwELigIAIAAgARAAIABBIGogAUEgahASIAFB8JYEIAEQhwEgAEHAAGogAUHAAGoQACAAQeAAaiABQeAAahASIAFBwABqQbCXBCABQcAAahCHASAAQYABaiABQYABahAAIABBoAFqIAFBoAFqEBIgAUGAAWpB8JcEIAFBgAFqEIcBIABBwAFqIAFBwAFqEAAgAEHgAWogAUHgAWoQEiABQcABakGwmAQgAUHAAWoQhwEgAEGAAmogAUGAAmoQACAAQaACaiABQaACahASIAFBgAJqQfCYBCABQYACahCHASAAQcACaiABQcACahAAIABB4AJqIAFB4AJqEBIgAUHAAmpBsJkEIAFBwAJqEIcBC2wAIABB8JkEIAEQhwEgAEHAAGpBsJoEIAFBwABqEIcBIABBgAFqQfCaBCABQYABahCHASAAQcABakGwmwQgAUHAAWoQhwEgAEGAAmpB8JsEIAFBgAJqEIcBIABBwAJqQbCcBCABQcACahCHAQuKAgAgACABEAAgAEEgaiABQSBqEBIgAUHwnAQgARCHASAAQcAAaiABQcAAahAAIABB4ABqIAFB4ABqEBIgAUHAAGpBsJ0EIAFBwABqEIcBIABBgAFqIAFBgAFqEAAgAEGgAWogAUGgAWoQEiABQYABakHwnQQgAUGAAWoQhwEgAEHAAWogAUHAAWoQACAAQeABaiABQeABahASIAFBwAFqQbCeBCABQcABahCHASAAQYACaiABQYACahAAIABBoAJqIAFBoAJqEBIgAUGAAmpB8J4EIAFBgAJqEIcBIABBwAJqIAFBwAJqEAAgAEHgAmogAUHgAmoQEiABQcACakGwnwQgAUHAAmoQhwELEAAgAEHwnwRB4AIgARCWAgtIACAAQdCiBBDyASAAQcABakGQpAQQ9wEgAEHQpQQQkQJB0KIEQdClBEHQqAQQhwJB0KgE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",pq:520,pr:1864,pG1gen:31592,pG1zero:31688,pG1b:3240,pG2gen:31784,pG2zero:31976,pG2b:12616,pOneT:32168,prePSize:192,preQSize:19776,n8q:32,n8r:32,q:"21888242871839275222246405745257275088696311157297823662689037894645226208583",r:"21888242871839275222246405745257275088548364400416034343698204186575808495617"},bls12381_wasm:{code:"AGFzbQEAAAABlAESYAJ/fwBgAX8AYAF/AX9gAn9/AX9gA39/fwF/YAN/f38AYAN/fn8AYAJ/fgBgBH9/f38AYAV/f39/fwBgBH9/f38Bf2AHf39/f39/fwBgBn9/f39/fwBgCn9/f39/f39/f38AYAV/f39/fwF/YAd/f39/f39/AX9gCX9/f39/f39/fwF/YAt/f39/f39/f39/fwF/Ag8BA2VudgZtZW1vcnkCABkDywLJAgABAgEDAwQEBQAABgcIBQIFBQAABQAAAAACAgABBQgJBQUIAAIAAQIBAwMEBAUAAAYHCAUCBQUAAAUAAAAAAgIAAQUICQUFCAACBQAAAgICAQEAAAADAwMAAAUFBQAABQUFAAAAAAACAgUABQAAAAAFBQUFBQoACwkKAAsJCAgDAAgIAgAACQwMBQUMAAgNCQgCAgEBAAUFAAUFAAAAAAMACAICCQgAAgICAQEAAAADAwMAAAUFBQAABQUFAAAAAAACAgUABQAAAAAFBQUFBQoACwkKAAsJCAgFAwAICAIAAAkMDAUFDAUDAAgIAgAACQwMBQUMBQUJCQkJCQACAgEBAAUABQUAAgAAAwAIAgkIAAICAQEABQUABQUAAAAAAwAIAgIJCAACBQgJBQAAAAAAAAAAAAACAgICBQAAAAUAAAAABA4PEBEFB/gmugIJaW50cV9jb3B5AAAJaW50cV96ZXJvAAEIaW50cV9vbmUAAwtpbnRxX2lzWmVybwACB2ludHFfZXEABAhpbnRxX2d0ZQAFCGludHFfYWRkAAYIaW50cV9zdWIABwhpbnRxX211bAAIC2ludHFfc3F1YXJlAAkOaW50cV9zcXVhcmVPbGQACghpbnRxX2RpdgAND2ludHFfaW52ZXJzZU1vZAAOCGYxbV9jb3B5AAAIZjFtX3plcm8AAQpmMW1faXNaZXJvAAIGZjFtX2VxAAQHZjFtX2FkZAAQB2YxbV9zdWIAEQdmMW1fbmVnABIOZjFtX2lzTmVnYXRpdmUAGQlmMW1faXNPbmUADwhmMW1fc2lnbgAaC2YxbV9tUmVkdWN0ABMHZjFtX211bAAUCmYxbV9zcXVhcmUAFQ1mMW1fc3F1YXJlT2xkABYSZjFtX2Zyb21Nb250Z29tZXJ5ABgQZjFtX3RvTW9udGdvbWVyeQAXC2YxbV9pbnZlcnNlABsHZjFtX29uZQAcCGYxbV9sb2FkAB0PZjFtX3RpbWVzU2NhbGFyAB4HZjFtX2V4cAAiEGYxbV9iYXRjaEludmVyc2UAHwhmMW1fc3FydAAjDGYxbV9pc1NxdWFyZQAkFWYxbV9iYXRjaFRvTW9udGdvbWVyeQAgF2YxbV9iYXRjaEZyb21Nb250Z29tZXJ5ACEJaW50cl9jb3B5ACUJaW50cl96ZXJvACYIaW50cl9vbmUAKAtpbnRyX2lzWmVybwAnB2ludHJfZXEAKQhpbnRyX2d0ZQAqCGludHJfYWRkACsIaW50cl9zdWIALAhpbnRyX211bAAtC2ludHJfc3F1YXJlAC4OaW50cl9zcXVhcmVPbGQALwhpbnRyX2RpdgAyD2ludHJfaW52ZXJzZU1vZAAzCGZybV9jb3B5ACUIZnJtX3plcm8AJgpmcm1faXNaZXJvACcGZnJtX2VxACkHZnJtX2FkZAA1B2ZybV9zdWIANgdmcm1fbmVnADcOZnJtX2lzTmVnYXRpdmUAPglmcm1faXNPbmUANAhmcm1fc2lnbgA/C2ZybV9tUmVkdWN0ADgHZnJtX211bAA5CmZybV9zcXVhcmUAOg1mcm1fc3F1YXJlT2xkADsSZnJtX2Zyb21Nb250Z29tZXJ5AD0QZnJtX3RvTW9udGdvbWVyeQA8C2ZybV9pbnZlcnNlAEAHZnJtX29uZQBBCGZybV9sb2FkAEIPZnJtX3RpbWVzU2NhbGFyAEMHZnJtX2V4cABHEGZybV9iYXRjaEludmVyc2UARAhmcm1fc3FydABIDGZybV9pc1NxdWFyZQBJFWZybV9iYXRjaFRvTW9udGdvbWVyeQBFF2ZybV9iYXRjaEZyb21Nb250Z29tZXJ5AEYGZnJfYWRkADUGZnJfc3ViADYGZnJfbmVnADcGZnJfbXVsAEoJZnJfc3F1YXJlAEsKZnJfaW52ZXJzZQBMDWZyX2lzTmVnYXRpdmUATQdmcl9jb3B5ACUHZnJfemVybwAmBmZyX29uZQBBCWZyX2lzWmVybwAnBWZyX2VxACkMZzFtX211bHRpZXhwAHgSZzFtX211bHRpZXhwX2NodW5rAHcSZzFtX211bHRpZXhwQWZmaW5lAHwYZzFtX211bHRpZXhwQWZmaW5lX2NodW5rAHsKZzFtX2lzWmVybwBPEGcxbV9pc1plcm9BZmZpbmUATgZnMW1fZXEAVwtnMW1fZXFNaXhlZABWDGcxbV9lcUFmZmluZQBVCGcxbV9jb3B5AFMOZzFtX2NvcHlBZmZpbmUAUghnMW1femVybwBRDmcxbV96ZXJvQWZmaW5lAFAKZzFtX2RvdWJsZQBZEGcxbV9kb3VibGVBZmZpbmUAWAdnMW1fYWRkAFwMZzFtX2FkZE1peGVkAFsNZzFtX2FkZEFmZmluZQBaB2cxbV9uZWcAXg1nMW1fbmVnQWZmaW5lAF0HZzFtX3N1YgBhDGcxbV9zdWJNaXhlZABgDWcxbV9zdWJBZmZpbmUAXxJnMW1fZnJvbU1vbnRnb21lcnkAYxhnMW1fZnJvbU1vbnRnb21lcnlBZmZpbmUAYhBnMW1fdG9Nb250Z29tZXJ5AGUWZzFtX3RvTW9udGdvbWVyeUFmZmluZQBkD2cxbV90aW1lc1NjYWxhcgB9FWcxbV90aW1lc1NjYWxhckFmZmluZQB+DWcxbV9ub3JtYWxpemUAagpnMW1fTEVNdG9VAGwKZzFtX0xFTXRvQwBtCmcxbV9VdG9MRU0AbgpnMW1fQ3RvTEVNAG8PZzFtX2JhdGNoTEVNdG9VAHAPZzFtX2JhdGNoTEVNdG9DAHEPZzFtX2JhdGNoVXRvTEVNAHIPZzFtX2JhdGNoQ3RvTEVNAHMMZzFtX3RvQWZmaW5lAGYOZzFtX3RvSmFjb2JpYW4AVBFnMW1fYmF0Y2hUb0FmZmluZQBpE2cxbV9iYXRjaFRvSmFjb2JpYW4AdAtnMW1faW5DdXJ2ZQBoEWcxbV9pbkN1cnZlQWZmaW5lAGcHZnJtX2ZmdACEAQhmcm1faWZmdACFAQpmcm1fcmF3ZmZ0AIIBC2ZybV9mZnRKb2luAIYBDmZybV9mZnRKb2luRXh0AIcBEWZybV9mZnRKb2luRXh0SW52AIgBCmZybV9mZnRNaXgAiQEMZnJtX2ZmdEZpbmFsAIoBHWZybV9wcmVwYXJlTGFncmFuZ2VFdmFsdWF0aW9uAIsBCHBvbF96ZXJvAIwBD3BvbF9jb25zdHJ1Y3RMQwCNAQxxYXBfYnVpbGRBQkMAjgELcWFwX2pvaW5BQkMAjwEMcWFwX2JhdGNoQWRkAJABCmYybV9pc1plcm8AkQEJZjJtX2lzT25lAJIBCGYybV96ZXJvAJMBB2YybV9vbmUAlAEIZjJtX2NvcHkAlQEHZjJtX211bACWAQhmMm1fbXVsMQCXAQpmMm1fc3F1YXJlAJgBB2YybV9hZGQAmQEHZjJtX3N1YgCaAQdmMm1fbmVnAJsBCGYybV9zaWduAKIBDWYybV9jb25qdWdhdGUAnAESZjJtX2Zyb21Nb250Z29tZXJ5AJ4BEGYybV90b01vbnRnb21lcnkAnQEGZjJtX2VxAJ8BC2YybV9pbnZlcnNlAKABB2YybV9leHAApQEPZjJtX3RpbWVzU2NhbGFyAKEBEGYybV9iYXRjaEludmVyc2UApAEIZjJtX3NxcnQApgEMZjJtX2lzU3F1YXJlAKcBDmYybV9pc05lZ2F0aXZlAKMBDGcybV9tdWx0aWV4cADSARJnMm1fbXVsdGlleHBfY2h1bmsA0QESZzJtX211bHRpZXhwQWZmaW5lANYBGGcybV9tdWx0aWV4cEFmZmluZV9jaHVuawDVAQpnMm1faXNaZXJvAKkBEGcybV9pc1plcm9BZmZpbmUAqAEGZzJtX2VxALEBC2cybV9lcU1peGVkALABDGcybV9lcUFmZmluZQCvAQhnMm1fY29weQCtAQ5nMm1fY29weUFmZmluZQCsAQhnMm1femVybwCrAQ5nMm1femVyb0FmZmluZQCqAQpnMm1fZG91YmxlALMBEGcybV9kb3VibGVBZmZpbmUAsgEHZzJtX2FkZAC2AQxnMm1fYWRkTWl4ZWQAtQENZzJtX2FkZEFmZmluZQC0AQdnMm1fbmVnALgBDWcybV9uZWdBZmZpbmUAtwEHZzJtX3N1YgC7AQxnMm1fc3ViTWl4ZWQAugENZzJtX3N1YkFmZmluZQC5ARJnMm1fZnJvbU1vbnRnb21lcnkAvQEYZzJtX2Zyb21Nb250Z29tZXJ5QWZmaW5lALwBEGcybV90b01vbnRnb21lcnkAvwEWZzJtX3RvTW9udGdvbWVyeUFmZmluZQC+AQ9nMm1fdGltZXNTY2FsYXIA1wEVZzJtX3RpbWVzU2NhbGFyQWZmaW5lANgBDWcybV9ub3JtYWxpemUAxAEKZzJtX0xFTXRvVQDGAQpnMm1fTEVNdG9DAMcBCmcybV9VdG9MRU0AyAEKZzJtX0N0b0xFTQDJAQ9nMm1fYmF0Y2hMRU10b1UAygEPZzJtX2JhdGNoTEVNdG9DAMsBD2cybV9iYXRjaFV0b0xFTQDMAQ9nMm1fYmF0Y2hDdG9MRU0AzQEMZzJtX3RvQWZmaW5lAMABDmcybV90b0phY29iaWFuAK4BEWcybV9iYXRjaFRvQWZmaW5lAMMBE2cybV9iYXRjaFRvSmFjb2JpYW4AzgELZzJtX2luQ3VydmUAwgERZzJtX2luQ3VydmVBZmZpbmUAwQELZzFtX3RpbWVzRnIA2QEHZzFtX2ZmdADfAQhnMW1faWZmdADgAQpnMW1fcmF3ZmZ0AN0BC2cxbV9mZnRKb2luAOEBDmcxbV9mZnRKb2luRXh0AOIBEWcxbV9mZnRKb2luRXh0SW52AOMBCmcxbV9mZnRNaXgA5AEMZzFtX2ZmdEZpbmFsAOUBHWcxbV9wcmVwYXJlTGFncmFuZ2VFdmFsdWF0aW9uAOYBC2cybV90aW1lc0ZyAOcBB2cybV9mZnQA7QEIZzJtX2lmZnQA7gEKZzJtX3Jhd2ZmdADrAQtnMm1fZmZ0Sm9pbgDvAQ5nMm1fZmZ0Sm9pbkV4dADwARFnMm1fZmZ0Sm9pbkV4dEludgDxAQpnMm1fZmZ0TWl4APIBDGcybV9mZnRGaW5hbADzAR1nMm1fcHJlcGFyZUxhZ3JhbmdlRXZhbHVhdGlvbgD0ARFnMW1fdGltZXNGckFmZmluZQD1ARFnMm1fdGltZXNGckFmZmluZQD2ARFmcm1fYmF0Y2hBcHBseUtleQD3ARFnMW1fYmF0Y2hBcHBseUtleQD4ARZnMW1fYmF0Y2hBcHBseUtleU1peGVkAPkBEWcybV9iYXRjaEFwcGx5S2V5APoBFmcybV9iYXRjaEFwcGx5S2V5TWl4ZWQA+wEKZjZtX2lzWmVybwD9AQlmNm1faXNPbmUA/gEIZjZtX3plcm8A/wEHZjZtX29uZQCAAghmNm1fY29weQCBAgdmNm1fbXVsAIICCmY2bV9zcXVhcmUAgwIHZjZtX2FkZACEAgdmNm1fc3ViAIUCB2Y2bV9uZWcAhgIIZjZtX3NpZ24AhwISZjZtX2Zyb21Nb250Z29tZXJ5AIkCEGY2bV90b01vbnRnb21lcnkAiAIGZjZtX2VxAIoCC2Y2bV9pbnZlcnNlAIsCB2Y2bV9leHAAjwIPZjZtX3RpbWVzU2NhbGFyAIwCEGY2bV9iYXRjaEludmVyc2UAjgIOZjZtX2lzTmVnYXRpdmUAjQIKZnRtX2lzWmVybwCRAglmdG1faXNPbmUAkgIIZnRtX3plcm8AkwIHZnRtX29uZQCUAghmdG1fY29weQCVAgdmdG1fbXVsAJYCCGZ0bV9tdWwxAJcCCmZ0bV9zcXVhcmUAmAIHZnRtX2FkZACZAgdmdG1fc3ViAJoCB2Z0bV9uZWcAmwIIZnRtX3NpZ24AogINZnRtX2Nvbmp1Z2F0ZQCcAhJmdG1fZnJvbU1vbnRnb21lcnkAngIQZnRtX3RvTW9udGdvbWVyeQCdAgZmdG1fZXEAnwILZnRtX2ludmVyc2UAoAIHZnRtX2V4cAClAg9mdG1fdGltZXNTY2FsYXIAoQIQZnRtX2JhdGNoSW52ZXJzZQCkAghmdG1fc3FydACmAgxmdG1faXNTcXVhcmUApwIOZnRtX2lzTmVnYXRpdmUAowIRZnRtX2Zyb2Jlbml1c01hcDAArAIRZnRtX2Zyb2Jlbml1c01hcDEArQIRZnRtX2Zyb2Jlbml1c01hcDIArgIRZnRtX2Zyb2Jlbml1c01hcDMArwIRZnRtX2Zyb2Jlbml1c01hcDQAsAIRZnRtX2Zyb2Jlbml1c01hcDUAsQIRZnRtX2Zyb2Jlbml1c01hcDYAsgIRZnRtX2Zyb2Jlbml1c01hcDcAswIRZnRtX2Zyb2Jlbml1c01hcDgAtAIRZnRtX2Zyb2Jlbml1c01hcDkAtQITYmxzMTIzODFfcGFpcmluZ0VxMQDDAhNibHMxMjM4MV9wYWlyaW5nRXEyAMQCE2JsczEyMzgxX3BhaXJpbmdFcTMAxQITYmxzMTIzODFfcGFpcmluZ0VxNADGAhNibHMxMjM4MV9wYWlyaW5nRXE1AMcCEGJsczEyMzgxX3BhaXJpbmcAyAISYmxzMTIzODFfcHJlcGFyZUcxALwCEmJsczEyMzgxX3ByZXBhcmVHMgC9AhNibHMxMjM4MV9taWxsZXJMb29wAL4CHGJsczEyMzgxX2ZpbmFsRXhwb25lbnRpYXRpb24AwgIfYmxzMTIzODFfZmluYWxFeHBvbmVudGlhdGlvbk9sZAC/AhpibHMxMjM4MV9fY3ljbG90b21pY1NxdWFyZQDAAhpibHMxMjM4MV9fY3ljbG90b21pY0V4cF93MADBAghmNm1fbXVsMQCoAglmNm1fbXVsMDEAqQIKZnRtX211bDAxNACqAhFnMW1faW5Hcm91cEFmZmluZQC2AgtnMW1faW5Hcm91cAC3AhFnMm1faW5Hcm91cEFmZmluZQC4AgtnMm1faW5Hcm91cAC5AgqEkQXJAj4AIAEgACkDADcDACABIAApAwg3AwggASAAKQMQNwMQIAEgACkDGDcDGCABIAApAyA3AyAgASAAKQMoNwMoCywAIABCADcDACAAQgA3AwggAEIANwMQIABCADcDGCAAQgA3AyAgAEIANwMoC00AIAApAyhQBEAgACkDIFAEQCAAKQMYUARAIAApAxBQBEAgACkDCFAEQCAAKQMAUA8FQQAPCwVBAA8LBUEADwsFQQAPCwVBAA8LQQAPCywAIABCATcDACAAQgA3AwggAEIANwMQIABCADcDGCAAQgA3AyAgAEIANwMoC2sAIAApAyggASkDKFEEQCAAKQMgIAEpAyBRBEAgACkDGCABKQMYUQRAIAApAxAgASkDEFEEQCAAKQMIIAEpAwhRBEAgACkDACABKQMAUQ8FQQAPCwVBAA8LBUEADwsFQQAPCwVBAA8LQQAPC8UBACAAKQMoIAEpAyhUBEBBAA8FIAApAyggASkDKFYEQEEBDwUgACkDICABKQMgVARAQQAPBSAAKQMgIAEpAyBWBEBBAQ8FIAApAxggASkDGFQEQEEADwUgACkDGCABKQMYVgRAQQEPBSAAKQMQIAEpAxBUBEBBAA8FIAApAxAgASkDEFYEQEEBDwUgACkDCCABKQMIVARAQQAPBSAAKQMIIAEpAwhWBEBBAQ8FIAApAwAgASkDAFoPCwsLCwsLCwsLC0EADwu8AgEBfiAANQIAIAE1AgB8IQMgAiADPgIAIAA1AgQgATUCBHwgA0IgiHwhAyACIAM+AgQgADUCCCABNQIIfCADQiCIfCEDIAIgAz4CCCAANQIMIAE1Agx8IANCIIh8IQMgAiADPgIMIAA1AhAgATUCEHwgA0IgiHwhAyACIAM+AhAgADUCFCABNQIUfCADQiCIfCEDIAIgAz4CFCAANQIYIAE1Ahh8IANCIIh8IQMgAiADPgIYIAA1AhwgATUCHHwgA0IgiHwhAyACIAM+AhwgADUCICABNQIgfCADQiCIfCEDIAIgAz4CICAANQIkIAE1AiR8IANCIIh8IQMgAiADPgIkIAA1AiggATUCKHwgA0IgiHwhAyACIAM+AiggADUCLCABNQIsfCADQiCIfCEDIAIgAz4CLCADQiCIpwuQAwEBfiAANQIAIAE1AgB9IQMgAiADQv////8Pgz4CACAANQIEIAE1AgR9IANCIId8IQMgAiADQv////8Pgz4CBCAANQIIIAE1Agh9IANCIId8IQMgAiADQv////8Pgz4CCCAANQIMIAE1Agx9IANCIId8IQMgAiADQv////8Pgz4CDCAANQIQIAE1AhB9IANCIId8IQMgAiADQv////8Pgz4CECAANQIUIAE1AhR9IANCIId8IQMgAiADQv////8Pgz4CFCAANQIYIAE1Ahh9IANCIId8IQMgAiADQv////8Pgz4CGCAANQIcIAE1Ahx9IANCIId8IQMgAiADQv////8Pgz4CHCAANQIgIAE1AiB9IANCIId8IQMgAiADQv////8Pgz4CICAANQIkIAE1AiR9IANCIId8IQMgAiADQv////8Pgz4CJCAANQIoIAE1Aih9IANCIId8IQMgAiADQv////8Pgz4CKCAANQIsIAE1Aix9IANCIId8IQMgAiADQv////8Pgz4CLCADQiCHpwunIhoBfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+IANC/////w+DIAA1AgAiBSABNQIAIgZ+fCEDIAQgA0IgiHwhBCACIAM+AgAgBEIgiCEDIARC/////w+DIAUgATUCBCIIfnwhBCADIARCIIh8IQMgBEL/////D4MgADUCBCIHIAZ+fCEEIAMgBEIgiHwhAyACIAQ+AgQgA0IgiCEEIANC/////w+DIAUgATUCCCIKfnwhAyAEIANCIIh8IQQgA0L/////D4MgByAIfnwhAyAEIANCIIh8IQQgA0L/////D4MgADUCCCIJIAZ+fCEDIAQgA0IgiHwhBCACIAM+AgggBEIgiCEDIARC/////w+DIAUgATUCDCIMfnwhBCADIARCIIh8IQMgBEL/////D4MgByAKfnwhBCADIARCIIh8IQMgBEL/////D4MgCSAIfnwhBCADIARCIIh8IQMgBEL/////D4MgADUCDCILIAZ+fCEEIAMgBEIgiHwhAyACIAQ+AgwgA0IgiCEEIANC/////w+DIAUgATUCECIOfnwhAyAEIANCIIh8IQQgA0L/////D4MgByAMfnwhAyAEIANCIIh8IQQgA0L/////D4MgCSAKfnwhAyAEIANCIIh8IQQgA0L/////D4MgCyAIfnwhAyAEIANCIIh8IQQgA0L/////D4MgADUCECINIAZ+fCEDIAQgA0IgiHwhBCACIAM+AhAgBEIgiCEDIARC/////w+DIAUgATUCFCIQfnwhBCADIARCIIh8IQMgBEL/////D4MgByAOfnwhBCADIARCIIh8IQMgBEL/////D4MgCSAMfnwhBCADIARCIIh8IQMgBEL/////D4MgCyAKfnwhBCADIARCIIh8IQMgBEL/////D4MgDSAIfnwhBCADIARCIIh8IQMgBEL/////D4MgADUCFCIPIAZ+fCEEIAMgBEIgiHwhAyACIAQ+AhQgA0IgiCEEIANC/////w+DIAUgATUCGCISfnwhAyAEIANCIIh8IQQgA0L/////D4MgByAQfnwhAyAEIANCIIh8IQQgA0L/////D4MgCSAOfnwhAyAEIANCIIh8IQQgA0L/////D4MgCyAMfnwhAyAEIANCIIh8IQQgA0L/////D4MgDSAKfnwhAyAEIANCIIh8IQQgA0L/////D4MgDyAIfnwhAyAEIANCIIh8IQQgA0L/////D4MgADUCGCIRIAZ+fCEDIAQgA0IgiHwhBCACIAM+AhggBEIgiCEDIARC/////w+DIAUgATUCHCIUfnwhBCADIARCIIh8IQMgBEL/////D4MgByASfnwhBCADIARCIIh8IQMgBEL/////D4MgCSAQfnwhBCADIARCIIh8IQMgBEL/////D4MgCyAOfnwhBCADIARCIIh8IQMgBEL/////D4MgDSAMfnwhBCADIARCIIh8IQMgBEL/////D4MgDyAKfnwhBCADIARCIIh8IQMgBEL/////D4MgESAIfnwhBCADIARCIIh8IQMgBEL/////D4MgADUCHCITIAZ+fCEEIAMgBEIgiHwhAyACIAQ+AhwgA0IgiCEEIANC/////w+DIAUgATUCICIWfnwhAyAEIANCIIh8IQQgA0L/////D4MgByAUfnwhAyAEIANCIIh8IQQgA0L/////D4MgCSASfnwhAyAEIANCIIh8IQQgA0L/////D4MgCyAQfnwhAyAEIANCIIh8IQQgA0L/////D4MgDSAOfnwhAyAEIANCIIh8IQQgA0L/////D4MgDyAMfnwhAyAEIANCIIh8IQQgA0L/////D4MgESAKfnwhAyAEIANCIIh8IQQgA0L/////D4MgEyAIfnwhAyAEIANCIIh8IQQgA0L/////D4MgADUCICIVIAZ+fCEDIAQgA0IgiHwhBCACIAM+AiAgBEIgiCEDIARC/////w+DIAUgATUCJCIYfnwhBCADIARCIIh8IQMgBEL/////D4MgByAWfnwhBCADIARCIIh8IQMgBEL/////D4MgCSAUfnwhBCADIARCIIh8IQMgBEL/////D4MgCyASfnwhBCADIARCIIh8IQMgBEL/////D4MgDSAQfnwhBCADIARCIIh8IQMgBEL/////D4MgDyAOfnwhBCADIARCIIh8IQMgBEL/////D4MgESAMfnwhBCADIARCIIh8IQMgBEL/////D4MgEyAKfnwhBCADIARCIIh8IQMgBEL/////D4MgFSAIfnwhBCADIARCIIh8IQMgBEL/////D4MgADUCJCIXIAZ+fCEEIAMgBEIgiHwhAyACIAQ+AiQgA0IgiCEEIANC/////w+DIAUgATUCKCIafnwhAyAEIANCIIh8IQQgA0L/////D4MgByAYfnwhAyAEIANCIIh8IQQgA0L/////D4MgCSAWfnwhAyAEIANCIIh8IQQgA0L/////D4MgCyAUfnwhAyAEIANCIIh8IQQgA0L/////D4MgDSASfnwhAyAEIANCIIh8IQQgA0L/////D4MgDyAQfnwhAyAEIANCIIh8IQQgA0L/////D4MgESAOfnwhAyAEIANCIIh8IQQgA0L/////D4MgEyAMfnwhAyAEIANCIIh8IQQgA0L/////D4MgFSAKfnwhAyAEIANCIIh8IQQgA0L/////D4MgFyAIfnwhAyAEIANCIIh8IQQgA0L/////D4MgADUCKCIZIAZ+fCEDIAQgA0IgiHwhBCACIAM+AiggBEIgiCEDIARC/////w+DIAUgATUCLCIcfnwhBCADIARCIIh8IQMgBEL/////D4MgByAafnwhBCADIARCIIh8IQMgBEL/////D4MgCSAYfnwhBCADIARCIIh8IQMgBEL/////D4MgCyAWfnwhBCADIARCIIh8IQMgBEL/////D4MgDSAUfnwhBCADIARCIIh8IQMgBEL/////D4MgDyASfnwhBCADIARCIIh8IQMgBEL/////D4MgESAQfnwhBCADIARCIIh8IQMgBEL/////D4MgEyAOfnwhBCADIARCIIh8IQMgBEL/////D4MgFSAMfnwhBCADIARCIIh8IQMgBEL/////D4MgFyAKfnwhBCADIARCIIh8IQMgBEL/////D4MgGSAIfnwhBCADIARCIIh8IQMgBEL/////D4MgADUCLCIbIAZ+fCEEIAMgBEIgiHwhAyACIAQ+AiwgA0IgiCEEIANC/////w+DIAcgHH58IQMgBCADQiCIfCEEIANC/////w+DIAkgGn58IQMgBCADQiCIfCEEIANC/////w+DIAsgGH58IQMgBCADQiCIfCEEIANC/////w+DIA0gFn58IQMgBCADQiCIfCEEIANC/////w+DIA8gFH58IQMgBCADQiCIfCEEIANC/////w+DIBEgEn58IQMgBCADQiCIfCEEIANC/////w+DIBMgEH58IQMgBCADQiCIfCEEIANC/////w+DIBUgDn58IQMgBCADQiCIfCEEIANC/////w+DIBcgDH58IQMgBCADQiCIfCEEIANC/////w+DIBkgCn58IQMgBCADQiCIfCEEIANC/////w+DIBsgCH58IQMgBCADQiCIfCEEIAIgAz4CMCAEQiCIIQMgBEL/////D4MgCSAcfnwhBCADIARCIIh8IQMgBEL/////D4MgCyAafnwhBCADIARCIIh8IQMgBEL/////D4MgDSAYfnwhBCADIARCIIh8IQMgBEL/////D4MgDyAWfnwhBCADIARCIIh8IQMgBEL/////D4MgESAUfnwhBCADIARCIIh8IQMgBEL/////D4MgEyASfnwhBCADIARCIIh8IQMgBEL/////D4MgFSAQfnwhBCADIARCIIh8IQMgBEL/////D4MgFyAOfnwhBCADIARCIIh8IQMgBEL/////D4MgGSAMfnwhBCADIARCIIh8IQMgBEL/////D4MgGyAKfnwhBCADIARCIIh8IQMgAiAEPgI0IANCIIghBCADQv////8PgyALIBx+fCEDIAQgA0IgiHwhBCADQv////8PgyANIBp+fCEDIAQgA0IgiHwhBCADQv////8PgyAPIBh+fCEDIAQgA0IgiHwhBCADQv////8PgyARIBZ+fCEDIAQgA0IgiHwhBCADQv////8PgyATIBR+fCEDIAQgA0IgiHwhBCADQv////8PgyAVIBJ+fCEDIAQgA0IgiHwhBCADQv////8PgyAXIBB+fCEDIAQgA0IgiHwhBCADQv////8PgyAZIA5+fCEDIAQgA0IgiHwhBCADQv////8PgyAbIAx+fCEDIAQgA0IgiHwhBCACIAM+AjggBEIgiCEDIARC/////w+DIA0gHH58IQQgAyAEQiCIfCEDIARC/////w+DIA8gGn58IQQgAyAEQiCIfCEDIARC/////w+DIBEgGH58IQQgAyAEQiCIfCEDIARC/////w+DIBMgFn58IQQgAyAEQiCIfCEDIARC/////w+DIBUgFH58IQQgAyAEQiCIfCEDIARC/////w+DIBcgEn58IQQgAyAEQiCIfCEDIARC/////w+DIBkgEH58IQQgAyAEQiCIfCEDIARC/////w+DIBsgDn58IQQgAyAEQiCIfCEDIAIgBD4CPCADQiCIIQQgA0L/////D4MgDyAcfnwhAyAEIANCIIh8IQQgA0L/////D4MgESAafnwhAyAEIANCIIh8IQQgA0L/////D4MgEyAYfnwhAyAEIANCIIh8IQQgA0L/////D4MgFSAWfnwhAyAEIANCIIh8IQQgA0L/////D4MgFyAUfnwhAyAEIANCIIh8IQQgA0L/////D4MgGSASfnwhAyAEIANCIIh8IQQgA0L/////D4MgGyAQfnwhAyAEIANCIIh8IQQgAiADPgJAIARCIIghAyAEQv////8PgyARIBx+fCEEIAMgBEIgiHwhAyAEQv////8PgyATIBp+fCEEIAMgBEIgiHwhAyAEQv////8PgyAVIBh+fCEEIAMgBEIgiHwhAyAEQv////8PgyAXIBZ+fCEEIAMgBEIgiHwhAyAEQv////8PgyAZIBR+fCEEIAMgBEIgiHwhAyAEQv////8PgyAbIBJ+fCEEIAMgBEIgiHwhAyACIAQ+AkQgA0IgiCEEIANC/////w+DIBMgHH58IQMgBCADQiCIfCEEIANC/////w+DIBUgGn58IQMgBCADQiCIfCEEIANC/////w+DIBcgGH58IQMgBCADQiCIfCEEIANC/////w+DIBkgFn58IQMgBCADQiCIfCEEIANC/////w+DIBsgFH58IQMgBCADQiCIfCEEIAIgAz4CSCAEQiCIIQMgBEL/////D4MgFSAcfnwhBCADIARCIIh8IQMgBEL/////D4MgFyAafnwhBCADIARCIIh8IQMgBEL/////D4MgGSAYfnwhBCADIARCIIh8IQMgBEL/////D4MgGyAWfnwhBCADIARCIIh8IQMgAiAEPgJMIANCIIghBCADQv////8PgyAXIBx+fCEDIAQgA0IgiHwhBCADQv////8PgyAZIBp+fCEDIAQgA0IgiHwhBCADQv////8PgyAbIBh+fCEDIAQgA0IgiHwhBCACIAM+AlAgBEIgiCEDIARC/////w+DIBkgHH58IQQgAyAEQiCIfCEDIARC/////w+DIBsgGn58IQQgAyAEQiCIfCEDIAIgBD4CVCADQiCIIQQgA0L/////D4MgGyAcfnwhAyAEIANCIIh8IQQgAiADPgJYIARCIIghAyACIAQ+AlwLziAQAX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX5CACECQgAhAyACQv////8Pg0IBhiECIANCAYYgAkIgiHwhAyACQv////8PgyAANQIAIgYgBn58IQIgAyACQiCIfCEDIAEgAj4CACADIQQgBEIgiCEFQgAhAkIAIQMgAkL/////D4MgBiAANQIEIgd+fCECIAMgAkIgiHwhAyACQv////8Pg0IBhiECIANCAYYgAkIgiHwhAyACQv////8PgyAEQv////8Pg3whAiADIAJCIIh8IAV8IQMgASACPgIEIAMhBCAEQiCIIQVCACECQgAhAyACQv////8PgyAGIAA1AggiCH58IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIAcgB358IQIgAyACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyABIAI+AgggAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DIAYgADUCDCIJfnwhAiADIAJCIIh8IQMgAkL/////D4MgByAIfnwhAiADIAJCIIh8IQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgBEL/////D4N8IQIgAyACQiCIfCAFfCEDIAEgAj4CDCADIQQgBEIgiCEFQgAhAkIAIQMgAkL/////D4MgBiAANQIQIgp+fCECIAMgAkIgiHwhAyACQv////8PgyAHIAl+fCECIAMgAkIgiHwhAyACQv////8Pg0IBhiECIANCAYYgAkIgiHwhAyACQv////8PgyAIIAh+fCECIAMgAkIgiHwhAyACQv////8PgyAEQv////8Pg3whAiADIAJCIIh8IAV8IQMgASACPgIQIAMhBCAEQiCIIQVCACECQgAhAyACQv////8PgyAGIAA1AhQiC358IQIgAyACQiCIfCEDIAJC/////w+DIAcgCn58IQIgAyACQiCIfCEDIAJC/////w+DIAggCX58IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyABIAI+AhQgAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DIAYgADUCGCIMfnwhAiADIAJCIIh8IQMgAkL/////D4MgByALfnwhAiADIAJCIIh8IQMgAkL/////D4MgCCAKfnwhAiADIAJCIIh8IQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgCSAJfnwhAiADIAJCIIh8IQMgAkL/////D4MgBEL/////D4N8IQIgAyACQiCIfCAFfCEDIAEgAj4CGCADIQQgBEIgiCEFQgAhAkIAIQMgAkL/////D4MgBiAANQIcIg1+fCECIAMgAkIgiHwhAyACQv////8PgyAHIAx+fCECIAMgAkIgiHwhAyACQv////8PgyAIIAt+fCECIAMgAkIgiHwhAyACQv////8PgyAJIAp+fCECIAMgAkIgiHwhAyACQv////8Pg0IBhiECIANCAYYgAkIgiHwhAyACQv////8PgyAEQv////8Pg3whAiADIAJCIIh8IAV8IQMgASACPgIcIAMhBCAEQiCIIQVCACECQgAhAyACQv////8PgyAGIAA1AiAiDn58IQIgAyACQiCIfCEDIAJC/////w+DIAcgDX58IQIgAyACQiCIfCEDIAJC/////w+DIAggDH58IQIgAyACQiCIfCEDIAJC/////w+DIAkgC358IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIAogCn58IQIgAyACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyABIAI+AiAgAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DIAYgADUCJCIPfnwhAiADIAJCIIh8IQMgAkL/////D4MgByAOfnwhAiADIAJCIIh8IQMgAkL/////D4MgCCANfnwhAiADIAJCIIh8IQMgAkL/////D4MgCSAMfnwhAiADIAJCIIh8IQMgAkL/////D4MgCiALfnwhAiADIAJCIIh8IQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgBEL/////D4N8IQIgAyACQiCIfCAFfCEDIAEgAj4CJCADIQQgBEIgiCEFQgAhAkIAIQMgAkL/////D4MgBiAANQIoIhB+fCECIAMgAkIgiHwhAyACQv////8PgyAHIA9+fCECIAMgAkIgiHwhAyACQv////8PgyAIIA5+fCECIAMgAkIgiHwhAyACQv////8PgyAJIA1+fCECIAMgAkIgiHwhAyACQv////8PgyAKIAx+fCECIAMgAkIgiHwhAyACQv////8Pg0IBhiECIANCAYYgAkIgiHwhAyACQv////8PgyALIAt+fCECIAMgAkIgiHwhAyACQv////8PgyAEQv////8Pg3whAiADIAJCIIh8IAV8IQMgASACPgIoIAMhBCAEQiCIIQVCACECQgAhAyACQv////8PgyAGIAA1AiwiEX58IQIgAyACQiCIfCEDIAJC/////w+DIAcgEH58IQIgAyACQiCIfCEDIAJC/////w+DIAggD358IQIgAyACQiCIfCEDIAJC/////w+DIAkgDn58IQIgAyACQiCIfCEDIAJC/////w+DIAogDX58IQIgAyACQiCIfCEDIAJC/////w+DIAsgDH58IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyABIAI+AiwgAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DIAcgEX58IQIgAyACQiCIfCEDIAJC/////w+DIAggEH58IQIgAyACQiCIfCEDIAJC/////w+DIAkgD358IQIgAyACQiCIfCEDIAJC/////w+DIAogDn58IQIgAyACQiCIfCEDIAJC/////w+DIAsgDX58IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIAwgDH58IQIgAyACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyABIAI+AjAgAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DIAggEX58IQIgAyACQiCIfCEDIAJC/////w+DIAkgEH58IQIgAyACQiCIfCEDIAJC/////w+DIAogD358IQIgAyACQiCIfCEDIAJC/////w+DIAsgDn58IQIgAyACQiCIfCEDIAJC/////w+DIAwgDX58IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyABIAI+AjQgAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DIAkgEX58IQIgAyACQiCIfCEDIAJC/////w+DIAogEH58IQIgAyACQiCIfCEDIAJC/////w+DIAsgD358IQIgAyACQiCIfCEDIAJC/////w+DIAwgDn58IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIA0gDX58IQIgAyACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyABIAI+AjggAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DIAogEX58IQIgAyACQiCIfCEDIAJC/////w+DIAsgEH58IQIgAyACQiCIfCEDIAJC/////w+DIAwgD358IQIgAyACQiCIfCEDIAJC/////w+DIA0gDn58IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyABIAI+AjwgAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DIAsgEX58IQIgAyACQiCIfCEDIAJC/////w+DIAwgEH58IQIgAyACQiCIfCEDIAJC/////w+DIA0gD358IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIA4gDn58IQIgAyACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyABIAI+AkAgAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DIAwgEX58IQIgAyACQiCIfCEDIAJC/////w+DIA0gEH58IQIgAyACQiCIfCEDIAJC/////w+DIA4gD358IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyABIAI+AkQgAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DIA0gEX58IQIgAyACQiCIfCEDIAJC/////w+DIA4gEH58IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIA8gD358IQIgAyACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyABIAI+AkggAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DIA4gEX58IQIgAyACQiCIfCEDIAJC/////w+DIA8gEH58IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyABIAI+AkwgAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DIA8gEX58IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIBAgEH58IQIgAyACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyABIAI+AlAgAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DIBAgEX58IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyABIAI+AlQgAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIBEgEX58IQIgAyACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwg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D4MgDSAMfnwhAyAEIANCIIh8IQQgA0L/////D4NBADUCgAYiESAIfnwhAyAEIANCIIh8IQQgA0L/////D4MgBX5C/////w+DIRAgA0L/////D4MgCSAQfnwhAyAEIANCIIh8IQQgBEIgiCEDIARC/////w+DIAYgATUCDCITfnwhBCADIARCIIh8IQMgBEL/////D4MgCiAPfnwhBCADIARCIIh8IQMgBEL/////D4MgDiALfnwhBCADIARCIIh8IQMgBEL/////D4MgADUCDCISIAd+fCEEIAMgBEIgiHwhAyAEQv////8PgyANIBB+fCEEIAMgBEIgiHwhAyAEQv////8PgyARIAx+fCEEIAMgBEIgiHwhAyAEQv////8Pg0EANQKEBiIVIAh+fCEEIAMgBEIgiHwhAyAEQv////8PgyAFfkL/////D4MhFCAEQv////8PgyAJIBR+fCEEIAMgBEIgiHwhAyADQiCIIQQgA0L/////D4MgBiABNQIQIhd+fCEDIAQgA0IgiHwhBCADQv////8PgyAKIBN+fCEDIAQgA0IgiHwhBCADQv////8PgyAOIA9+fCEDIAQgA0IgiHwhBCADQv////8PgyASIAt+fCEDIAQgA0IgiHwhBCADQv////8PgyAANQIQIhYgB358IQMgBCADQiCIfCEEIANC/////w+DIA0gFH58IQMgBCADQiCIfCEEIANC/////w+DIBEgEH58IQMgBCADQiCIfCEEIANC/////w+DIBUgDH58IQMgBCADQiCIfCEEIANC/////w+DQQA1AogGIhkgCH58IQMgBCADQiCIfCEEIANC/////w+DIAV+Qv////8PgyEYIANC/////w+DIAkgGH58IQMgBCADQiCIfCEEIARCIIghAyAEQv////8PgyAGIAE1AhQiG358IQQgAyAEQiCIfCEDIARC/////w+DIAogF358IQQgAyAEQiCIfCEDIARC/////w+DIA4gE358IQQgAyAEQiCIfCEDIARC/////w+DIBIgD358IQQgAyAEQiCIfCEDIARC/////w+DIBYgC358IQQgAyAEQiCIfCEDIARC/////w+DIAA1AhQiGiAHfnwhBCADIARCIIh8IQMgBEL/////D4MgDSAYfnwhBCADIARCIIh8IQMgBEL/////D4MgESAUfnwhBCADIARCIIh8IQMgBEL/////D4MgFSAQfnwhBCADIARCIIh8IQMgBEL/////D4MgGSAMfnwhBCADIARCIIh8IQMgBEL/////D4NBADUCjAYiHSAIfnwhBCADIARCIIh8IQMgBEL/////D4MgBX5C/////w+DIRwgBEL/////D4MgCSAcfnwhBCADIARCIIh8IQMgA0IgiCEEIANC/////w+DIAYgATUCGCIffnwhAyAEIANCIIh8IQQgA0L/////D4MgCiAbfnwhAyAEIANCIIh8IQQgA0L/////D4MgDiAXfnwhAyAEIANCIIh8IQQgA0L/////D4MgEiATfnwhAyAEIANCIIh8IQQgA0L/////D4MgFiAPfnwhAyAEIANCIIh8IQQgA0L/////D4MgGiALfnwhAyAEIANCIIh8IQQgA0L/////D4MgADUCGCIeIAd+fCEDIAQgA0IgiHwhBCADQv////8PgyANIBx+fCEDIAQgA0IgiHwhBCADQv////8PgyARIBh+fCEDIAQgA0IgiHwhBCADQv////8PgyAVIBR+fCEDIAQgA0IgiHwhBCADQv////8PgyAZIBB+fCEDIAQgA0IgiHwhBCADQv////8PgyAdIAx+fCEDIAQgA0IgiHwhBCADQv////8Pg0EANQKQBiIhIAh+fCEDIAQgA0IgiHwhBCADQv////8PgyAFfkL/////D4MhICADQv////8PgyAJICB+fCEDIAQgA0IgiHwhBCAEQiCIIQMgBEL/////D4MgBiABNQIcIiN+fCEEIAMgBEIgiHwhAyAEQv////8PgyAKIB9+fCEEIAMgBEIgiHwhAyAEQv////8PgyAOIBt+fCEEIAMgBEIgiHwhAyAEQv////8PgyASIBd+fCEEIAMgBEIgiHwhAyAEQv////8PgyAWIBN+fCEEIAMgBEIgiHwhAyAEQv////8PgyAaIA9+fCEEIAMgBEIgiHwhAyAEQv////8PgyAeIAt+fCEEIAMgBEIgiHwhAyAEQv////8PgyAANQIcIiIgB358IQQgAyAEQiCIfCEDIARC/////w+DIA0gIH58IQQgAyAEQiCIfCEDIARC/////w+DIBEgHH58IQQgAyAEQiCIfCEDIARC/////w+DIBUgGH58IQQgAyAEQiCIfCEDIARC/////w+DIBkgFH58IQQgAyAEQiCIfCEDIARC/////w+DIB0gEH58IQQgAyAEQiCIfCEDIARC/////w+DICEgDH58IQQgAyAEQiCIfCEDIARC/////w+DQQA1ApQGIiUgCH58IQQgAyAEQiCIfCEDIARC/////w+DIAV+Qv////8PgyEkIARC/////w+DIAkgJH58IQQgAyAEQiCIfCEDIANCIIghBCADQv////8PgyAGIAE1AiAiJ358IQMgBCADQiCIfCEEIANC/////w+DIAogI358IQMgBCADQiCIfCEEIANC/////w+DIA4gH358IQMgBCADQiCIfCEEIANC/////w+DIBIgG358IQMgBCADQiCIfCEEIANC/////w+DIBYgF358IQMgBCADQiCIfCEEIANC/////w+DIBogE358IQMgBCADQiCIfCEEIANC/////w+DIB4gD358IQMgBCADQiCIfCEEIANC/////w+DICIgC358IQMgBCADQiCIfCEEIANC/////w+DIAA1AiAiJiAHfnwhAyAEIANCIIh8IQQgA0L/////D4MgDSAkfnwhAyAEIANCIIh8IQQgA0L/////D4MgESAgfnwhAyAEIANCIIh8IQQgA0L/////D4MgFSAcfnwhAyAEIANCIIh8IQQgA0L/////D4MgGSAYfnwhAyAEIANCIIh8IQQgA0L/////D4MgHSAUfnwhAyAEIANCIIh8IQQgA0L/////D4MgISAQfnwhAyAEIANCIIh8IQQgA0L/////D4MgJSAMfnwhAyAEIANCIIh8IQQgA0L/////D4NBADUCmAYiKSAIfnwhAyAEIANCIIh8IQQgA0L/////D4MgBX5C/////w+DISggA0L/////D4MgCSAofnwhAyAEIANCIIh8IQQgBEIgiCEDIARC/////w+DIAYgATUCJCIrfnwhBCADIARCIIh8IQMgBEL/////D4MgCiAnfnwhBCADIARCIIh8IQMgBEL/////D4MgDiAjfnwhBCADIARCIIh8IQMgBEL/////D4MgEiAffnwhBCADIARCIIh8IQMgBEL/////D4MgFiAbfnwhBCADIARCIIh8IQMgBEL/////D4MgGiAXfnwhBCADIARCIIh8IQMgBEL/////D4MgHiATfnwhBCADIARCIIh8IQMgBEL/////D4MgIiAPfnwhBCADIARCIIh8IQMgBEL/////D4MgJiALfnwhBCADIARCIIh8IQMgBEL/////D4MgADUCJCIqIAd+fCEEIAMgBEIgiHwhAyAEQv////8PgyANICh+fCEEIAMgBEIgiHwhAyAEQv////8PgyARICR+fCEEIAMgBEIgiHwhAyAEQv////8PgyAVICB+fCEEIAMgBEIgiHwhAyAEQv////8PgyAZIBx+fCEEIAMgBEIgiHwhAyAEQv////8PgyAdIBh+fCEEIAMgBEIgiHwhAyAEQv////8PgyAhIBR+fCEEIAMgBEIgiHwhAyAEQv////8PgyAlIBB+fCEEIAMgBEIgiHwhAyAEQv////8PgyApIAx+fCEEIAMgBEIgiHwhAyAEQv////8Pg0EANQKcBiItIAh+fCEEIAMgBEIgiHwhAyAEQv////8PgyAFfkL/////D4MhLCAEQv////8PgyAJICx+fCEEIAMgBEIgiHwhAyADQiCIIQQgA0L/////D4MgBiABNQIoIi9+fCEDIAQgA0IgiHwhBCADQv////8PgyAKICt+fCEDIAQgA0IgiHwhBCADQv////8PgyAOICd+fCEDIAQgA0IgiHwhBCADQv////8PgyASICN+fCEDIAQgA0IgiHwhBCADQv////8PgyAWIB9+fCEDIAQgA0IgiHwhBCADQv////8PgyAaIBt+fCEDIAQgA0IgiHwhBCADQv////8PgyAeIBd+fCEDIAQgA0IgiHwhBCADQv////8PgyAiIBN+fCEDIAQgA0IgiHwhBCADQv////8PgyAmIA9+fCEDIAQgA0IgiHwhBCADQv////8PgyAqIAt+fCEDIAQgA0IgiHwhBCADQv////8PgyAANQIoIi4gB358IQMgBCADQiCIfCEEIANC/////w+DIA0gLH58IQMgBCADQiCIfCEEIANC/////w+DIBEgKH58IQMgBCADQiCIfCEEIANC/////w+DIBUgJH58IQMgBCADQiCIfCEEIANC/////w+DIBkgIH58IQMgBCADQiCIfCEEIANC/////w+DIB0gHH58IQMgBCADQiCIfCEEIANC/////w+DICEgGH58IQMgBCADQiCIfCEEIANC/////w+DICUgFH58IQMgBCADQiCIfCEEIANC/////w+DICkgEH58IQMgBCADQiCIfCEEIANC/////w+DIC0gDH58IQMgBCADQiCIfCEEIANC/////w+DQQA1AqAGIjEgCH58IQMgBCADQiCIfCEEIANC/////w+DIAV+Qv////8PgyEwIANC/////w+DIAkgMH58IQMgBCADQiCIfCEEIARCIIghAyAEQv////8PgyAGIAE1AiwiM358IQQgAyAEQiCIfCEDIARC/////w+DIAogL358IQQgAyAEQiCIfCEDIARC/////w+DIA4gK358IQQgAyAEQiCIfCEDIARC/////w+DIBIgJ358IQQgAyAEQiCIfCEDIARC/////w+DIBYgI358IQQgAyAEQiCIfCEDIARC/////w+DIBogH358IQQgAyAEQiCIfCEDIARC/////w+DIB4gG358IQQgAyAEQiCIfCEDIARC/////w+DICIgF358IQQgAyAEQiCIfCEDIARC/////w+DICYgE358IQQgAyAEQiCIfCEDIARC/////w+DICogD358IQQgAyAEQiCIfCEDIARC/////w+DIC4gC358IQQgAyAEQiCIfCEDIARC/////w+DIAA1AiwiMiAHfnwhBCADIARCIIh8IQMgBEL/////D4MgDSAwfnwhBCADIARCIIh8IQMgBEL/////D4MgESAsfnwhBCADIARCIIh8IQMgBEL/////D4MgFSAofnwhBCADIARCIIh8IQMgBEL/////D4MgGSAkfnwhBCADIARCIIh8IQMgBEL/////D4MgHSAgfnwhBCADIARCIIh8IQMgBEL/////D4MgISAcfnwhBCADIARCIIh8IQMgBEL/////D4MgJSAYfnwhBCADIARCIIh8IQMgBEL/////D4MgKSAUfnwhBCADIARCIIh8IQMgBEL/////D4MgLSAQfnwhBCADIARCIIh8IQMgBEL/////D4MgMSAMfnwhBCADIARCIIh8IQMgBEL/////D4NBADUCpAYiNSAIfnwhBCADIARCIIh8IQMgBEL/////D4MgBX5C/////w+DITQgBEL/////D4MgCSA0fnwhBCADIARCIIh8IQMgA0IgiCEEIANC/////w+DIAogM358IQMgBCADQiCIfCEEIANC/////w+DIA4gL358IQMgBCADQiCIfCEEIANC/////w+DIBIgK358IQMgBCADQiCIfCEEIANC/////w+DIBYgJ358IQMgBCADQiCIfCEEIANC/////w+DIBogI358IQMgBCADQiCIfCEEIANC/////w+DIB4gH358IQMgBCADQiCIfCEEIANC/////w+DICIgG358IQMgBCADQiCIfCEEIANC/////w+DICYgF358IQMgBCADQiCIfCEEIANC/////w+DICogE358IQMgBCADQiCIfCEEIANC/////w+DIC4gD358IQMgBCADQiCIfCEEIANC/////w+DIDIgC358IQMgBCADQiCIfCEEIANC/////w+DIA0gNH58IQMgBCADQiCIfCEEIANC/////w+DIBEgMH58IQMgBCADQiCIfCEEIANC/////w+DIBUgLH58IQMgBCADQiCIfCEEIANC/////w+DIBkgKH58IQMgBCADQiCIfCEEIANC/////w+DIB0gJH58IQMgBCADQiCIfCEEIANC/////w+DICEgIH58IQMgBCADQiCIfCEEIANC/////w+DICUgHH58IQMgBCADQiCIfCEEIANC/////w+DICkgGH58IQMgBCADQiCIfCEEIANC/////w+DIC0gFH58IQMgBCADQiCIfCEEIANC/////w+DIDEgEH58IQMgBCADQiCIfCEEIANC/////w+DIDUgDH58IQMgBCADQiCIfCEEIAIgAz4CACAEQiCIIQMgBEL/////D4MgDiAzfnwhBCADIARCIIh8IQMgBEL/////D4MgEiAvfnwhBCADIARCIIh8IQMgBEL/////D4MgFiArfnwhBCADIARCIIh8IQMgBEL/////D4MgGiAnfnwhBCADIARCIIh8IQMgBEL/////D4MgHiAjfnwhBCADIARCIIh8IQMgBEL/////D4MgIiAffnwhBCADIARCIIh8IQMgBEL/////D4MgJiAbfnwhBCADIARCIIh8IQMgBEL/////D4MgKiAXfnwhBCADIARCIIh8IQMgBEL/////D4MgLiATfnwhBCADIARCIIh8IQMgBEL/////D4MgMiAPfnwhBCADIARCIIh8IQMgBEL/////D4MgESA0fnwhBCADIARCIIh8IQMgBEL/////D4MgFSAwfnwhBCADIARCIIh8IQMgBEL/////D4MgGSAsfnwhBCADIARCIIh8IQMgBEL/////D4MgHSAofnwhBCADIARCIIh8IQMgBEL/////D4MgISAkfnwhBCADIARCIIh8IQMgBEL/////D4MgJSAgfnwhBCADIARCIIh8IQMgBEL/////D4MgKSAcfnwhBCADIARCIIh8IQMgBEL/////D4MgLSAYfnwhBCADIARCIIh8IQMgBEL/////D4MgMSAUfnwhBCADIARCIIh8IQMgBEL/////D4MgNSAQfnwhBCADIARCIIh8IQMgAiAEPgIEIANCIIghBCADQv////8PgyASIDN+fCEDIAQgA0IgiHwhBCADQv////8PgyAWIC9+fCEDIAQgA0IgiHwhBCADQv////8PgyAaICt+fCEDIAQgA0IgiHwhBCADQv////8PgyAeICd+fCEDIAQgA0IgiHwhBCADQv////8PgyAiICN+fCEDIAQgA0IgiHwhBCADQv////8PgyAmIB9+fCEDIAQgA0IgiHwhBCADQv////8PgyAqIBt+fCEDIAQgA0IgiHwhBCADQv////8PgyAuIBd+fCEDIAQgA0IgiHwhBCADQv////8PgyAyIBN+fCEDIAQgA0IgiHwhBCADQv////8PgyAVIDR+fCEDIAQgA0IgiHwhBCADQv////8PgyAZIDB+fCEDIAQgA0IgiHwhBCADQv////8PgyAdICx+fCEDIAQgA0IgiHwhBCADQv////8PgyAhICh+fCEDIAQgA0IgiHwhBCADQv////8PgyAlICR+fCEDIAQgA0IgiHwhBCADQv////8PgyApICB+fCEDIAQgA0IgiHwhBCADQv////8PgyAtIBx+fCEDIAQgA0IgiHwhBCADQv////8PgyAxIBh+fCEDIAQgA0IgiHwhBCADQv////8PgyA1IBR+fCEDIAQgA0IgiHwhBCACIAM+AgggBEIgiCEDIARC/////w+DIBYgM358IQQgAyAEQiCIfCEDIARC/////w+DIBogL358IQQgAyAEQiCIfCEDIARC/////w+DIB4gK358IQQgAyAEQiCIfCEDIARC/////w+DICIgJ358IQQgAyAEQiCIfCEDIARC/////w+DICYgI358IQQgAyAEQiCIfCEDIARC/////w+DICogH358IQQgAyAEQiCIfCEDIARC/////w+DIC4gG358IQQgAyAEQiCIfCEDIARC/////w+DIDIgF358IQQgAyAEQiCIfCEDIARC/////w+DIBkgNH58IQQgAyAEQiCIfCEDIARC/////w+DIB0gMH58IQQgAyAEQiCIfCEDIARC/////w+DICEgLH58IQQgAyAEQiCIfCEDIARC/////w+DICUgKH58IQQgAyAEQiCIfCEDIARC/////w+DICkgJH58IQQgAyAEQiCIfCEDIARC/////w+DIC0gIH58IQQgAyAEQiCIfCEDIARC/////w+DIDEgHH58IQQgAyAEQiCIfCEDIARC/////w+DIDUgGH58IQQgAyAEQiCIfCEDIAIgBD4CDCADQiCIIQQgA0L/////D4MgGiAzfnwhAyAEIANCIIh8IQQgA0L/////D4MgHiAvfnwhAyAEIANCIIh8IQQgA0L/////D4MgIiArfnwhAyAEIANCIIh8IQQgA0L/////D4MgJiAnfnwhAyAEIANCIIh8IQQgA0L/////D4MgKiAjfnwhAyAEIANCIIh8IQQgA0L/////D4MgLiAffnwhAyAEIANCIIh8IQQgA0L/////D4MgMiAbfnwhAyAEIANCIIh8IQQgA0L/////D4MgHSA0fnwhAyAEIANCIIh8IQQgA0L/////D4MgISAwfnwhAyAEIANCIIh8IQQgA0L/////D4MgJSAsfnwhAyAEIANCIIh8IQQgA0L/////D4MgKSAofnwhAyAEIANCIIh8IQQgA0L/////D4MgLSAkfnwhAyAEIANCIIh8IQQgA0L/////D4MgMSAgfnwhAyAEIANCIIh8IQQgA0L/////D4MgNSAcfnwhAyAEIANCIIh8IQQgAiADPgIQIARCIIghAyAEQv////8PgyAeIDN+fCEEIAMgBEIgiHwhAyAEQv////8PgyAiIC9+fCEEIAMgBEIgiHwhAyAEQv////8PgyAmICt+fCEEIAMgBEIgiHwhAyAEQv////8PgyAqICd+fCEEIAMgBEIgiHwhAyAEQv////8PgyAuICN+fCEEIAMgBEIgiHwhAyAEQv////8PgyAyIB9+fCEEIAMgBEIgiHwhAyAEQv////8PgyAhIDR+fCEEIAMgBEIgiHwhAyAEQv////8PgyAlIDB+fCEEIAMgBEIgiHwhAyAEQv////8PgyApICx+fCEEIAMgBEIgiHwhAyAEQv////8PgyAtICh+fCEEIAMgBEIgiHwhAyAEQv////8PgyAxICR+fCEEIAMgBEIgiHwhAyAEQv////8PgyA1ICB+fCEEIAMgBEIgiHwhAyACIAQ+AhQgA0IgiCEEIANC/////w+DICIgM358IQMgBCADQiCIfCEEIANC/////w+DICYgL358IQMgBCADQiCIfCEEIANC/////w+DICogK358IQMgBCADQiCIfCEEIANC/////w+DIC4gJ358IQMgBCADQiCIfCEEIANC/////w+DIDIgI358IQMgBCADQiCIfCEEIANC/////w+DICUgNH58IQMgBCADQiCIfCEEIANC/////w+DICkgMH58IQMgBCADQiCIfCEEIANC/////w+DIC0gLH58IQMgBCADQiCIfCEEIANC/////w+DIDEgKH58IQMgBCADQiCIfCEEIANC/////w+DIDUgJH58IQMgBCADQiCIfCEEIAIgAz4CGCAEQiCIIQMgBEL/////D4MgJiAzfnwhBCADIARCIIh8IQMgBEL/////D4MgKiAvfnwhBCADIARCIIh8IQMgBEL/////D4MgLiArfnwhBCADIARCIIh8IQMgBEL/////D4MgMiAnfnwhBCADIARCIIh8IQMgBEL/////D4MgKSA0fnwhBCADIARCIIh8IQMgBEL/////D4MgLSAwfnwhBCADIARCIIh8IQMgBEL/////D4MgMSAsfnwhBCADIARCIIh8IQMgBEL/////D4MgNSAofnwhBCADIARCIIh8IQMgAiAEPgIcIANCIIghBCADQv////8PgyAqIDN+fCEDIAQgA0IgiHwhBCADQv////8PgyAuIC9+fCEDIAQgA0IgiHwhBCADQv////8PgyAyICt+fCEDIAQgA0IgiHwhBCADQv////8PgyAtIDR+fCEDIAQgA0IgiHwhBCADQv////8PgyAxIDB+fCEDIAQgA0IgiHwhBCADQv////8PgyA1ICx+fCEDIAQgA0IgiHwhBCACIAM+AiAgBEIgiCEDIARC/////w+DIC4gM358IQQgAyAEQiCIfCEDIARC/////w+DIDIgL358IQQgAyAEQiCIfCEDIARC/////w+DIDEgNH58IQQgAyAEQiCIfCEDIARC/////w+DIDUgMH58IQQgAyAEQiCIfCEDIAIgBD4CJCADQiCIIQQgA0L/////D4MgMiAzfnwhAyAEIANCIIh8IQQgA0L/////D4MgNSA0fnwhAyAEIANCIIh8IQQgAiADPgIoIARCIIghAyACIAQ+AiwgA6cEQCACQfgFIAIQBxoFIAJB+AUQBQRAIAJB+AUgAhAHGgsLC81BKQF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX5C/f/z/w8hBkIAIQJCACEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIAA1AgAiByAHfnwhAiADIAJCIIh8IQMgAkL/////D4MgBn5C/////w+DIQggAkL/////D4NBADUC+AUiCSAIfnwhAiADIAJCIIh8IQMgAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DIAcgADUCBCIKfnwhAiADIAJCIIh8IQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgBEL/////D4N8IQIgAyACQiCIfCAFfCEDIAJC/////w+DQQA1AvwFIgwgCH58IQIgAyACQiCIfCEDIAJC/////w+DIAZ+Qv////8PgyELIAJC/////w+DIAkgC358IQIgAyACQiCIfCEDIAMhBCAEQiCIIQVCACECQgAhAyACQv////8PgyAHIAA1AggiDX58IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIAogCn58IQIgAyACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyACQv////8PgyAMIAt+fCECIAMgAkIgiHwhAyACQv////8Pg0EANQKABiIPIAh+fCECIAMgAkIgiHwhAyACQv////8PgyAGfkL/////D4MhDiACQv////8PgyAJIA5+fCECIAMgAkIgiHwhAyADIQQgBEIgiCEFQgAhAkIAIQMgAkL/////D4MgByAANQIMIhB+fCECIAMgAkIgiHwhAyACQv////8PgyAKIA1+fCECIAMgAkIgiHwhAyACQv////8Pg0IBhiECIANCAYYgAkIgiHwhAyACQv////8PgyAEQv////8Pg3whAiADIAJCIIh8IAV8IQMgAkL/////D4MgDCAOfnwhAiADIAJCIIh8IQMgAkL/////D4MgDyALfnwhAiADIAJCIIh8IQMgAkL/////D4NBADUChAYiEiAIfnwhAiADIAJCIIh8IQMgAkL/////D4MgBn5C/////w+DIREgAkL/////D4MgCSARfnwhAiADIAJCIIh8IQMgAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DIAcgADUCECITfnwhAiADIAJCIIh8IQMgAkL/////D4MgCiAQfnwhAiADIAJCIIh8IQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgDSANfnwhAiADIAJCIIh8IQMgAkL/////D4MgBEL/////D4N8IQIgAyACQiCIfCAFfCEDIAJC/////w+DIAwgEX58IQIgAyACQiCIfCEDIAJC/////w+DIA8gDn58IQIgAyACQiCIfCEDIAJC/////w+DIBIgC358IQIgAyACQiCIfCEDIAJC/////w+DQQA1AogGIhUgCH58IQIgAyACQiCIfCEDIAJC/////w+DIAZ+Qv////8PgyEUIAJC/////w+DIAkgFH58IQIgAyACQiCIfCEDIAMhBCAEQiCIIQVCACECQgAhAyACQv////8PgyAHIAA1AhQiFn58IQIgAyACQiCIfCEDIAJC/////w+DIAogE358IQIgAyACQiCIfCEDIAJC/////w+DIA0gEH58IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyACQv////8PgyAMIBR+fCECIAMgAkIgiHwhAyACQv////8PgyAPIBF+fCECIAMgAkIgiHwhAyACQv////8PgyASIA5+fCECIAMgAkIgiHwhAyACQv////8PgyAVIAt+fCECIAMgAkIgiHwhAyACQv////8Pg0EANQKMBiIYIAh+fCECIAMgAkIgiHwhAyACQv////8PgyAGfkL/////D4MhFyACQv////8PgyAJIBd+fCECIAMgAkIgiHwhAyADIQQgBEIgiCEFQgAhAkIAIQMgAkL/////D4MgByAANQIYIhl+fCECIAMgAkIgiHwhAyACQv////8PgyAKIBZ+fCECIAMgAkIgiHwhAyACQv////8PgyANIBN+fCECIAMgAkIgiHwhAyACQv////8Pg0IBhiECIANCAYYgAkIgiHwhAyACQv////8PgyAQIBB+fCECIAMgAkIgiHwhAyACQv////8PgyAEQv////8Pg3whAiADIAJCIIh8IAV8IQMgAkL/////D4MgDCAXfnwhAiADIAJCIIh8IQMgAkL/////D4MgDyAUfnwhAiADIAJCIIh8IQMgAkL/////D4MgEiARfnwhAiADIAJCIIh8IQMgAkL/////D4MgFSAOfnwhAiADIAJCIIh8IQMgAkL/////D4MgGCALfnwhAiADIAJCIIh8IQMgAkL/////D4NBADUCkAYiGyAIfnwhAiADIAJCIIh8IQMgAkL/////D4MgBn5C/////w+DIRogAkL/////D4MgCSAafnwhAiADIAJCIIh8IQMgAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DIAcgADUCHCIcfnwhAiADIAJCIIh8IQMgAkL/////D4MgCiAZfnwhAiADIAJCIIh8IQMgAkL/////D4MgDSAWfnwhAiADIAJCIIh8IQMgAkL/////D4MgECATfnwhAiADIAJCIIh8IQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgBEL/////D4N8IQIgAyACQiCIfCAFfCEDIAJC/////w+DIAwgGn58IQIgAyACQiCIfCEDIAJC/////w+DIA8gF358IQIgAyACQiCIfCEDIAJC/////w+DIBIgFH58IQIgAyACQiCIfCEDIAJC/////w+DIBUgEX58IQIgAyACQiCIfCEDIAJC/////w+DIBggDn58IQIgAyACQiCIfCEDIAJC/////w+DIBsgC358IQIgAyACQiCIfCEDIAJC/////w+DQQA1ApQGIh4gCH58IQIgAyACQiCIfCEDIAJC/////w+DIAZ+Qv////8PgyEdIAJC/////w+DIAkgHX58IQIgAyACQiCIfCEDIAMhBCAEQiCIIQVCACECQgAhAyACQv////8PgyAHIAA1AiAiH358IQIgAyACQiCIfCEDIAJC/////w+DIAogHH58IQIgAyACQiCIfCEDIAJC/////w+DIA0gGX58IQIgAyACQiCIfCEDIAJC/////w+DIBAgFn58IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIBMgE358IQIgAyACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyACQv////8PgyAMIB1+fCECIAMgAkIgiHwhAyACQv////8PgyAPIBp+fCECIAMgAkIgiHwhAyACQv////8PgyASIBd+fCECIAMgAkIgiHwhAyACQv////8PgyAVIBR+fCECIAMgAkIgiHwhAyACQv////8PgyAYIBF+fCECIAMgAkIgiHwhAyACQv////8PgyAbIA5+fCECIAMgAkIgiHwhAyACQv////8PgyAeIAt+fCECIAMgAkIgiHwhAyACQv////8Pg0EANQKYBiIhIAh+fCECIAMgAkIgiHwhAyACQv////8PgyAGfkL/////D4MhICACQv////8PgyAJICB+fCECIAMgAkIgiHwhAyADIQQgBEIgiCEFQgAhAkIAIQMgAkL/////D4MgByAANQIkIiJ+fCECIAMgAkIgiHwhAyACQv////8PgyAKIB9+fCECIAMgAkIgiHwhAyACQv////8PgyANIBx+fCECIAMgAkIgiHwhAyACQv////8PgyAQIBl+fCECIAMgAkIgiHwhAyACQv////8PgyATIBZ+fCECIAMgAkIgiHwhAyACQv////8Pg0IBhiECIANCAYYgAkIgiHwhAyACQv////8PgyAEQv////8Pg3whAiADIAJCIIh8IAV8IQMgAkL/////D4MgDCAgfnwhAiADIAJCIIh8IQMgAkL/////D4MgDyAdfnwhAiADIAJCIIh8IQMgAkL/////D4MgEiAafnwhAiADIAJCIIh8IQMgAkL/////D4MgFSAXfnwhAiADIAJCIIh8IQMgAkL/////D4MgGCAUfnwhAiADIAJCIIh8IQMgAkL/////D4MgGyARfnwhAiADIAJCIIh8IQMgAkL/////D4MgHiAOfnwhAiADIAJCIIh8IQMgAkL/////D4MgISALfnwhAiADIAJCIIh8IQMgAkL/////D4NBADUCnAYiJCAIfnwhAiADIAJCIIh8IQMgAkL/////D4MgBn5C/////w+DISMgAkL/////D4MgCSAjfnwhAiADIAJCIIh8IQMgAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DIAcgADUCKCIlfnwhAiADIAJCIIh8IQMgAkL/////D4MgCiAifnwhAiADIAJCIIh8IQMgAkL/////D4MgDSAffnwhAiADIAJCIIh8IQMgAkL/////D4MgECAcfnwhAiADIAJCIIh8IQMgAkL/////D4MgEyAZfnwhAiADIAJCIIh8IQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgFiAWfnwhAiADIAJCIIh8IQMgAkL/////D4MgBEL/////D4N8IQIgAyACQiCIfCAFfCEDIAJC/////w+DIAwgI358IQIgAyACQiCIfCEDIAJC/////w+DIA8gIH58IQIgAyACQiCIfCEDIAJC/////w+DIBIgHX58IQIgAyACQiCIfCEDIAJC/////w+DIBUgGn58IQIgAyACQiCIfCEDIAJC/////w+DIBggF358IQIgAyACQiCIfCEDIAJC/////w+DIBsgFH58IQIgAyACQiCIfCEDIAJC/////w+DIB4gEX58IQIgAyACQiCIfCEDIAJC/////w+DICEgDn58IQIgAyACQiCIfCEDIAJC/////w+DICQgC358IQIgAyACQiCIfCEDIAJC/////w+DQQA1AqAGIicgCH58IQIgAyACQiCIfCEDIAJC/////w+DIAZ+Qv////8PgyEmIAJC/////w+DIAkgJn58IQIgAyACQiCIfCEDIAMhBCAEQiCIIQVCACECQgAhAyACQv////8PgyAHIAA1AiwiKH58IQIgAyACQiCIfCEDIAJC/////w+DIAogJX58IQIgAyACQiCIfCEDIAJC/////w+DIA0gIn58IQIgAyACQiCIfCEDIAJC/////w+DIBAgH358IQIgAyACQiCIfCEDIAJC/////w+DIBMgHH58IQIgAyACQiCIfCEDIAJC/////w+DIBYgGX58IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyACQv////8PgyAMICZ+fCECIAMgAkIgiHwhAyACQv////8PgyAPICN+fCECIAMgAkIgiHwhAyACQv////8PgyASICB+fCECIAMgAkIgiHwhAyACQv////8PgyAVIB1+fCECIAMgAkIgiHwhAyACQv////8PgyAYIBp+fCECIAMgAkIgiHwhAyACQv////8PgyAbIBd+fCECIAMgAkIgiHwhAyACQv////8PgyAeIBR+fCECIAMgAkIgiHwhAyACQv////8PgyAhIBF+fCECIAMgAkIgiHwhAyACQv////8PgyAkIA5+fCECIAMgAkIgiHwhAyACQv////8PgyAnIAt+fCECIAMgAkIgiHwhAyACQv////8Pg0EANQKkBiIqIAh+fCECIAMgAkIgiHwhAyACQv////8PgyAGfkL/////D4MhKSACQv////8PgyAJICl+fCECIAMgAkIgiHwhAyADIQQgBEIgiCEFQgAhAkIAIQMgAkL/////D4MgCiAofnwhAiADIAJCIIh8IQMgAkL/////D4MgDSAlfnwhAiADIAJCIIh8IQMgAkL/////D4MgECAifnwhAiADIAJCIIh8IQMgAkL/////D4MgEyAffnwhAiADIAJCIIh8IQMgAkL/////D4MgFiAcfnwhAiADIAJCIIh8IQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgGSAZfnwhAiADIAJCIIh8IQMgAkL/////D4MgBEL/////D4N8IQIgAyACQiCIfCAFfCEDIAJC/////w+DIAwgKX58IQIgAyACQiCIfCEDIAJC/////w+DIA8gJn58IQIgAyACQiCIfCEDIAJC/////w+DIBIgI358IQIgAyACQiCIfCEDIAJC/////w+DIBUgIH58IQIgAyACQiCIfCEDIAJC/////w+DIBggHX58IQIgAyACQiCIfCEDIAJC/////w+DIBsgGn58IQIgAyACQiCIfCEDIAJC/////w+DIB4gF358IQIgAyACQiCIfCEDIAJC/////w+DICEgFH58IQIgAyACQiCIfCEDIAJC/////w+DICQgEX58IQIgAyACQiCIfCEDIAJC/////w+DICcgDn58IQIgAyACQiCIfCEDIAJC/////w+DICogC358IQIgAyACQiCIfCEDIAEgAj4CACADIQQgBEIgiCEFQgAhAkIAIQMgAkL/////D4MgDSAofnwhAiADIAJCIIh8IQMgAkL/////D4MgECAlfnwhAiADIAJCIIh8IQMgAkL/////D4MgEyAifnwhAiADIAJCIIh8IQMgAkL/////D4MgFiAffnwhAiADIAJCIIh8IQMgAkL/////D4MgGSAcfnwhAiADIAJCIIh8IQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgBEL/////D4N8IQIgAyACQiCIfCAFfCEDIAJC/////w+DIA8gKX58IQIgAyACQiCIfCEDIAJC/////w+DIBIgJn58IQIgAyACQiCIfCEDIAJC/////w+DIBUgI358IQIgAyACQiCIfCEDIAJC/////w+DIBggIH58IQIgAyACQiCIfCEDIAJC/////w+DIBsgHX58IQIgAyACQiCIfCEDIAJC/////w+DIB4gGn58IQIgAyACQiCIfCEDIAJC/////w+DICEgF358IQIgAyACQiCIfCEDIAJC/////w+DICQgFH58IQIgAyACQiCIfCEDIAJC/////w+DICcgEX58IQIgAyACQiCIfCEDIAJC/////w+DICogDn58IQIgAyACQiCIfCEDIAEgAj4CBCADIQQgBEIgiCEFQgAhAkIAIQMgAkL/////D4MgECAofnwhAiADIAJCIIh8IQMgAkL/////D4MgEyAlfnwhAiADIAJCIIh8IQMgAkL/////D4MgFiAifnwhAiADIAJCIIh8IQMgAkL/////D4MgGSAffnwhAiADIAJCIIh8IQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgHCAcfnwhAiADIAJCIIh8IQMgAkL/////D4MgBEL/////D4N8IQIgAyACQiCIfCAFfCEDIAJC/////w+DIBIgKX58IQIgAyACQiCIfCEDIAJC/////w+DIBUgJn58IQIgAyACQiCIfCEDIAJC/////w+DIBggI358IQIgAyACQiCIfCEDIAJC/////w+DIBsgIH58IQIgAyACQiCIfCEDIAJC/////w+DIB4gHX58IQIgAyACQiCIfCEDIAJC/////w+DICEgGn58IQIgAyACQiCIfCEDIAJC/////w+DICQgF358IQIgAyACQiCIfCEDIAJC/////w+DICcgFH58IQIgAyACQiCIfCEDIAJC/////w+DICogEX58IQIgAyACQiCIfCEDIAEgAj4CCCADIQQgBEIgiCEFQgAhAkIAIQMgAkL/////D4MgEyAofnwhAiADIAJCIIh8IQMgAkL/////D4MgFiAlfnwhAiADIAJCIIh8IQMgAkL/////D4MgGSAifnwhAiADIAJCIIh8IQMgAkL/////D4MgHCAffnwhAiADIAJCIIh8IQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgBEL/////D4N8IQIgAyACQiCIfCAFfCEDIAJC/////w+DIBUgKX58IQIgAyACQiCIfCEDIAJC/////w+DIBggJn58IQIgAyACQiCIfCEDIAJC/////w+DIBsgI358IQIgAyACQiCIfCEDIAJC/////w+DIB4gIH58IQIgAyACQiCIfCEDIAJC/////w+DICEgHX58IQIgAyACQiCIfCEDIAJC/////w+DICQgGn58IQIgAyACQiCIfCEDIAJC/////w+DICcgF358IQIgAyACQiCIfCEDIAJC/////w+DICogFH58IQIgAyACQiCIfCEDIAEgAj4CDCADIQQgBEIgiCEFQgAhAkIAIQMgAkL/////D4MgFiAofnwhAiADIAJCIIh8IQMgAkL/////D4MgGSAlfnwhAiADIAJCIIh8IQMgAkL/////D4MgHCAifnwhAiADIAJCIIh8IQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgHyAffnwhAiADIAJCIIh8IQMgAkL/////D4MgBEL/////D4N8IQIgAyACQiCIfCAFfCEDIAJC/////w+DIBggKX58IQIgAyACQiCIfCEDIAJC/////w+DIBsgJn58IQIgAyACQiCIfCEDIAJC/////w+DIB4gI358IQIgAyACQiCIfCEDIAJC/////w+DICEgIH58IQIgAyACQiCIfCEDIAJC/////w+DICQgHX58IQIgAyACQiCIfCEDIAJC/////w+DICcgGn58IQIgAyACQiCIfCEDIAJC/////w+DICogF358IQIgAyACQiCIfCEDIAEgAj4CECADIQQgBEIgiCEFQgAhAkIAIQMgAkL/////D4MgGSAofnwhAiADIAJCIIh8IQMgAkL/////D4MgHCAlfnwhAiADIAJCIIh8IQMgAkL/////D4MgHyAifnwhAiADIAJCIIh8IQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgBEL/////D4N8IQIgAyACQiCIfCAFfCEDIAJC/////w+DIBsgKX58IQIgAyACQiCIfCEDIAJC/////w+DIB4gJn58IQIgAyACQiCIfCEDIAJC/////w+DICEgI358IQIgAyACQiCIfCEDIAJC/////w+DICQgIH58IQIgAyACQiCIfCEDIAJC/////w+DICcgHX58IQIgAyACQiCIfCEDIAJC/////w+DICogGn58IQIgAyACQiCIfCEDIAEgAj4CFCADIQQgBEIgiCEFQgAhAkIAIQMgAkL/////D4MgHCAofnwhAiADIAJCIIh8IQMgAkL/////D4MgHyAlfnwhAiADIAJCIIh8IQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgIiAifnwhAiADIAJCIIh8IQMgAkL/////D4MgBEL/////D4N8IQIgAyACQiCIfCAFfCEDIAJC/////w+DIB4gKX58IQIgAyACQiCIfCEDIAJC/////w+DICEgJn58IQIgAyACQiCIfCEDIAJC/////w+DICQgI358IQIgAyACQiCIfCEDIAJC/////w+DICcgIH58IQIgAyACQiCIfCEDIAJC/////w+DICogHX58IQIgAyACQiCIfCEDIAEgAj4CGCADIQQgBEIgiCEFQgAhAkIAIQMgAkL/////D4MgHyAofnwhAiADIAJCIIh8IQMgAkL/////D4MgIiAlfnwhAiADIAJCIIh8IQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgBEL/////D4N8IQIgAyACQiCIfCAFfCEDIAJC/////w+DICEgKX58IQIgAyACQiCIfCEDIAJC/////w+DICQgJn58IQIgAyACQiCIfCEDIAJC/////w+DICcgI358IQIgAyACQiCIfCEDIAJC/////w+DICogIH58IQIgAyACQiCIfCEDIAEgAj4CHCADIQQgBEIgiCEFQgAhAkIAIQMgAkL/////D4MgIiAofnwhAiADIAJCIIh8IQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgJSAlfnwhAiADIAJCIIh8IQMgAkL/////D4MgBEL/////D4N8IQIgAyACQiCIfCAFfCEDIAJC/////w+DICQgKX58IQIgAyACQiCIfCEDIAJC/////w+DICcgJn58IQIgAyACQiCIfCEDIAJC/////w+DICogI358IQIgAyACQiCIfCEDIAEgAj4CICADIQQgBEIgiCEF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QgA3AwggAEIANwMQIABCADcDGAtHACAAKQMYIAEpAxhRBEAgACkDECABKQMQUQRAIAApAwggASkDCFEEQCAAKQMAIAEpAwBRDwVBAA8LBUEADwsFQQAPC0EADwt9ACAAKQMYIAEpAxhUBEBBAA8FIAApAxggASkDGFYEQEEBDwUgACkDECABKQMQVARAQQAPBSAAKQMQIAEpAxBWBEBBAQ8FIAApAwggASkDCFQEQEEADwUgACkDCCABKQMIVgRAQQEPBSAAKQMAIAEpAwBaDwsLCwsLC0EADwvUAQEBfiAANQIAIAE1AgB8IQMgAiADPgIAIAA1AgQgATUCBHwgA0IgiHwhAyACIAM+AgQgADUCCCABNQIIfCADQiCIfCEDIAIgAz4CCCAANQIMIAE1Agx8IANCIIh8IQMgAiADPgIMIAA1AhAgATUCEHwgA0IgiHwhAyACIAM+AhAgADUCFCABNQIUfCADQiCIfCEDIAIgAz4CFCAANQIYIAE1Ahh8IANCIIh8IQMgAiADPgIYIAA1AhwgATUCHHwgA0IgiHwhAyACIAM+AhwgA0IgiKcLjAIBAX4gADUCACABNQIAfSEDIAIgA0L/////D4M+AgAgADUCBCABNQIEfSADQiCHfCEDIAIgA0L/////D4M+AgQgADUCCCABNQIIfSADQiCHfCEDIAIgA0L/////D4M+AgggADUCDCABNQIMfSADQiCHfCEDIAIgA0L/////D4M+AgwgADUCECABNQIQfSADQiCHfCEDIAIgA0L/////D4M+AhAgADUCFCABNQIUfSADQiCHfCEDIAIgA0L/////D4M+AhQgADUCGCABNQIYfSADQiCHfCEDIAIgA0L/////D4M+AhggADUCHCABNQIcfSADQiCHfCEDIAIgA0L/////D4M+AhwgA0Igh6cLjxASAX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+IANC/////w+DIAA1AgAiBSABNQIAIgZ+fCEDIAQgA0IgiHwhBCACIAM+AgAgBEIgiCEDIARC/////w+DIAUgATUCBCIIfnwhBCADIARCIIh8IQMgBEL/////D4MgADUCBCIHIAZ+fCEEIAMgBEIgiHwhAyACIAQ+AgQgA0IgiCEEIANC/////w+DIAUgATUCCCIKfnwhAyAEIANCIIh8IQQgA0L/////D4MgByAIfnwhAyAEIANCIIh8IQQgA0L/////D4MgADUCCCIJIAZ+fCEDIAQgA0IgiHwhBCACIAM+AgggBEIgiCEDIARC/////w+DIAUgATUCDCIMfnwhBCADIARCIIh8IQMgBEL/////D4MgByAKfnwhBCADIARCIIh8IQMgBEL/////D4MgCSAIfnwhBCADIARCIIh8IQMgBEL/////D4MgADUCDCILIAZ+fCEEIAMgBEIgiHwhAyACIAQ+AgwgA0IgiCEEIANC/////w+DIAUgATUCECIOfnwhAyAEIANCIIh8IQQgA0L/////D4MgByAMfnwhAyAEIANCIIh8IQQgA0L/////D4MgCSAKfnwhAyAEIANCIIh8IQQgA0L/////D4MgCyAIfnwhAyAEIANCIIh8IQQgA0L/////D4MgADUCECINIAZ+fCEDIAQgA0IgiHwhBCACIAM+AhAgBEIgiCEDIARC/////w+DIAUgATUCFCIQfnwhBCADIARCIIh8IQMgBEL/////D4MgByAOfnwhBCADIARCIIh8IQMgBEL/////D4MgCSAMfnwhBCADIARCIIh8IQMgBEL/////D4MgCyAKfnwhBCADIARCIIh8IQMgBEL/////D4MgDSAIfnwhBCADIARCIIh8IQMgBEL/////D4MgADUCFCIPIAZ+fCEEIAMgBEIgiHwhAyACIAQ+AhQgA0IgiCEEIANC/////w+DIAUgATUCGCISfnwhAyAEIANCIIh8IQQgA0L/////D4MgByAQfnwhAyAEIANCIIh8IQQgA0L/////D4MgCSAOfnwhAyAEIANCIIh8IQQgA0L/////D4MgCyAMfnwhAyAEIANCIIh8IQQgA0L/////D4MgDSAKfnwhAyAEIANCIIh8IQQgA0L/////D4MgDyAIfnwhAyAEIANCIIh8IQQgA0L/////D4MgADUCGCIRIAZ+fCEDIAQgA0IgiHwhBCACIAM+AhggBEIgiCEDIARC/////w+DIAUgATUCHCIUfnwhBCADIARCIIh8IQMgBEL/////D4MgByASfnwhBCADIARCIIh8IQMgBEL/////D4MgCSAQfnwhBCADIARCIIh8IQMgBEL/////D4MgCyAOfnwhBCADIARCIIh8IQMgBEL/////D4MgDSAMfnwhBCADIARCIIh8IQMgBEL/////D4MgDyAKfnwhBCADIARCIIh8IQMgBEL/////D4MgESAIfnwhBCADIARCIIh8IQMgBEL/////D4MgADUCHCITIAZ+fCEEIAMgBEIgiHwhAyACIAQ+AhwgA0IgiCEEIANC/////w+DIAcgFH58IQMgBCADQiCIfCEEIANC/////w+DIAkgEn58IQMgBCADQiCIfCEEIANC/////w+DIAsgEH58IQMgBCADQiCIfCEEIANC/////w+DIA0gDn58IQMgBCADQiCIfCEEIANC/////w+DIA8gDH58IQMgBCADQiCIfCEEIANC/////w+DIBEgCn58IQMgBCADQiCIfCEEIANC/////w+DIBMgCH58IQMgBCADQiCIfCEEIAIgAz4CICAEQiCIIQMgBEL/////D4MgCSAUfnwhBCADIARCIIh8IQMgBEL/////D4MgCyASfnwhBCADIARCIIh8IQMgBEL/////D4MgDSAQfnwhBCADIARCIIh8IQMgBEL/////D4MgDyAOfnwhBCADIARCIIh8IQMgBEL/////D4MgESAMfnwhBCADIARCIIh8IQMgBEL/////D4MgEyAKfnwhBCADIARCIIh8IQMgAiAEPgIkIANCIIghBCADQv////8PgyALIBR+fCEDIAQgA0IgiHwhBCADQv////8PgyANIBJ+fCEDIAQgA0IgiHwhBCADQv////8PgyAPIBB+fCEDIAQgA0IgiHwhBCADQv////8PgyARIA5+fCEDIAQgA0IgiHwhBCADQv////8PgyATIAx+fCEDIAQgA0IgiHwhBCACIAM+AiggBEIgiCEDIARC/////w+DIA0gFH58IQQgAyAEQiCIfCEDIARC/////w+DIA8gEn58IQQgAyAEQiCIfCEDIARC/////w+DIBEgEH58IQQgAyAEQiCIfCEDIARC/////w+DIBMgDn58IQQgAyAEQiCIfCEDIAIgBD4CLCADQiCIIQQgA0L/////D4MgDyAUfnwhAyAEIANCIIh8IQQgA0L/////D4MgESASfnwhAyAEIANCIIh8IQQgA0L/////D4MgEyAQfnwhAyAEIANCIIh8IQQgAiADPgIwIARCIIghAyAEQv////8PgyARIBR+fCEEIAMgBEIgiHwhAyAEQv////8PgyATIBJ+fCEEIAMgBEIgiHwhAyACIAQ+AjQgA0IgiCEEIANC/////w+DIBMgFH58IQMgBCADQiCIfCEEIAIgAz4COCAEQiCIIQMgAiAEPgI8C4wSDAF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfkIAIQJCACEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIAA1AgAiBiAGfnwhAiADIAJCIIh8IQMgASACPgIAIAMhBCAEQiCIIQVCACECQgAhAyACQv////8PgyAGIAA1AgQiB358IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyABIAI+AgQgAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DIAYgADUCCCIIfnwhAiADIAJCIIh8IQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgByAHfnwhAiADIAJCIIh8IQMgAkL/////D4MgBEL/////D4N8IQIgAyACQiCIfCAFfCEDIAEgAj4CCCADIQQgBEIgiCEFQgAhAkIAIQMgAkL/////D4MgBiAANQIMIgl+fCECIAMgAkIgiHwhAyACQv////8PgyAHIAh+fCECIAMgAkIgiHwhAyACQv////8Pg0IBhiECIANCAYYgAkIgiHwhAyACQv////8PgyAEQv////8Pg3whAiADIAJCIIh8IAV8IQMgASACPgIMIAMhBCAEQiCIIQVCACECQgAhAyACQv////8PgyAGIAA1AhAiCn58IQIgAyACQiCIfCEDIAJC/////w+DIAcgCX58IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIAggCH58IQIgAyACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyABIAI+AhAgAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DIAYgADUCFCILfnwhAiADIAJCIIh8IQMgAkL/////D4MgByAKfnwhAiADIAJCIIh8IQMgAkL/////D4MgCCAJfnwhAiADIAJCIIh8IQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgBEL/////D4N8IQIgAyACQiCIfCAFfCEDIAEgAj4CFCADIQQgBEIgiCEFQgAhAkIAIQMgAkL/////D4MgBiAANQIYIgx+fCECIAMgAkIgiHwhAyACQv////8PgyAHIAt+fCECIAMgAkIgiHwhAyACQv////8PgyAIIAp+fCECIAMgAkIgiHwhAyACQv////8Pg0IBhiECIANCAYYgAkIgiHwhAyACQv////8PgyAJIAl+fCECIAMgAkIgiHwhAyACQv////8PgyAEQv////8Pg3whAiADIAJCIIh8IAV8IQMgASACPgIYIAMhBCAEQiCIIQVCACECQgAhAyACQv////8PgyAGIAA1AhwiDX58IQIgAyACQiCIfCEDIAJC/////w+DIAcgDH58IQIgAyACQiCIfCEDIAJC/////w+DIAggC358IQIgAyACQiCIfCEDIAJC/////w+DIAkgCn58IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyABIAI+AhwgAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DIAcgDX58IQIgAyACQiCIfCEDIAJC/////w+DIAggDH58IQIgAyACQiCIfCEDIAJC/////w+DIAkgC358IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIAogCn58IQIgAyACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyABIAI+AiAgAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DIAggDX58IQIgAyACQiCIfCEDIAJC/////w+DIAkgDH58IQIgAyACQiCIfCEDIAJC/////w+DIAogC358IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyABIAI+AiQgAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DIAkgDX58IQIgAyACQiCIfCEDIAJC/////w+DIAogDH58IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIAsgC358IQIgAyACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyABIAI+AiggAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DIAogDX58IQIgAyACQiCIfCEDIAJC/////w+DIAsgDH58IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyABIAI+AiwgAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DIAsgDX58IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIAwgDH58IQIgAyACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyABIAI+AjAgAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DIAwgDX58IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyABIAI+AjQgAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIA0gDX58IQIgAyACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyABIAI+AjggAyEEIARCIIghBSABIAQ+AjwLCgAgACAAIAEQLQu2AQEBfiAANQAAIAF+IQMgAiADPgAAIAA1AAQgAX4gA0IgiHwhAyACIAM+AAQgADUACCABfiADQiCIfCEDIAIgAz4ACCAANQAMIAF+IANCIIh8IQMgAiADPgAMIAA1ABAgAX4gA0IgiHwhAyACIAM+ABAgADUAFCABfiADQiCIfCEDIAIgAz4AFCAANQAYIAF+IANCIIh8IQMgAiADPgAYIAA1ABwgAX4gA0IgiHwhAyACIAM+ABwLTgIBfgF/IAAhAyADNQAAIAF8IQIgAyACPgAAIAJCIIghAgJAA0AgAlANASADQQRqIQMgAzUAACACfCECIAMgAj4AACACQiCIIQIMAAsLC7ACBwF/AX8BfwF/AX4BfgF/IAIEQCACIQUFQZgZIQULIAMEQCADIQQF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IAA1AiggA0IgiHxBuBw1AgwgBH58IQMgACADPgIoIAA1AiwgA0IgiHxBuBw1AhAgBH58IQMgACADPgIsIAA1AjAgA0IgiHxBuBw1AhQgBH58IQMgACADPgIwIAA1AjQgA0IgiHxBuBw1AhggBH58IQMgACADPgI0IAA1AjggA0IgiHxBuBw1AhwgBH58IQMgACADPgI4QZgfIANCIIg+AhxBmB8gAEEgaiABEDULvh8jAX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfkL/////DyEFIANC/////w+DIAA1AgAiBiABNQIAIgd+fCEDIAQgA0IgiHwhBCADQv////8PgyAFfkL/////D4MhCCADQv////8Pg0EANQK4HCIJIAh+fCEDIAQgA0IgiHwhBCAEQiCIIQMgBEL/////D4MgBiABNQIEIgt+fCEEIAMgBEIgiHwhAyAEQv////8PgyAANQIEIgogB358IQQgAyAEQiCIfCEDIARC/////w+DQQA1ArwcIg0gCH58IQQgAyAEQiCIfCEDIARC/////w+DIAV+Qv////8PgyEMIARC/////w+DIAkgDH58IQQgAyAEQiCIfCEDIANCIIghBCADQv////8PgyAGIAE1AggiD358IQMgBCADQiCIfCEEIANC/////w+DIAogC358IQMgBCADQiCIfCEEIANC/////w+DIAA1AggiDiAHfnwhAyAEIANCIIh8IQQgA0L/////D4MgDSAMfnwhAyAEIANCIIh8IQQgA0L/////D4NBADUCwBwiESAIfnwhAyAEIANCIIh8IQQgA0L/////D4MgBX5C/////w+DIRAgA0L/////D4MgCSAQfnwhAyAEIANCIIh8IQQgBEIgiCEDIARC/////w+DIAYgATUCDCITfnwhBCADIARCIIh8IQMgBEL/////D4MgCiAPfnwhBCADIARCIIh8IQMgBEL/////D4MgDiALfnwhBCADIARCIIh8IQMgBEL/////D4MgADUCDCISIAd+fCEEIAMgBEIgiHwhAyAEQv////8PgyANIBB+fCEEIAMgBEIgiHwhAyAEQv////8PgyARIAx+fCEEIAMgBEIgiHwhAyAEQv////8Pg0EANQLEHCIVIAh+fCEEIAMgBEIgiHwhAyAEQv////8PgyAFfkL/////D4MhFCAEQv////8PgyAJIBR+fCEEIAMgBEIgiHwhAyADQiCIIQQgA0L/////D4MgBiABNQIQIhd+fCEDIAQgA0IgiHwhBCADQv////8PgyAKIBN+fCEDIAQgA0IgiHwhBCADQv////8PgyAOIA9+fCEDIAQgA0IgiHwhBCADQv////8PgyASIAt+fCEDIAQgA0IgiHwhBCADQv////8PgyAANQIQIhYgB358IQMgBCADQiCIfCEEIANC/////w+DIA0gFH58IQMgBCADQiCIfCEEIANC/////w+DIBEgEH58IQMgBCADQiCIfCEEIANC/////w+DIBUgDH58IQMgBCADQiCIfCEEIANC/////w+DQQA1AsgcIhkgCH58IQMgBCADQiCIfCEEIANC/////w+DIAV+Qv////8PgyEYIANC/////w+DIAkgGH58IQMgBCADQiCIfCEEIARCIIghAyAEQv////8PgyAGIAE1AhQiG358IQQgAyAEQiCIfCEDIARC/////w+DIAogF358IQQgAyAEQiCIfCEDIARC/////w+DIA4gE358IQQgAyAEQiCIfCEDIARC/////w+DIBIgD358IQQgAyAEQiCIfCEDIARC/////w+DIBYgC358IQQgAyAEQiCIfCEDIARC/////w+DIAA1AhQiGiAHfnwhBCADIARCIIh8IQMgBEL/////D4MgDSAYfnwhBCADIARCIIh8IQMgBEL/////D4MgESAUfnwhBCADIARCIIh8IQMgBEL/////D4MgFSAQfnwhBCADIARCIIh8IQMgBEL/////D4MgGSAMfnwhBCADIARCIIh8IQMgBEL/////D4NBADUCzBwiHSAIfnwhBCADIARCIIh8IQMgBEL/////D4MgBX5C/////w+DIRwgBEL/////D4MgCSAcfnwhBCADIARCIIh8IQMgA0IgiCEEIANC/////w+DIAYgATUCGCIffnwhAyAEIANCIIh8IQQgA0L/////D4MgCiAbfnwhAyAEIANCIIh8IQQgA0L/////D4MgDiAXfnwhAyAEIANCIIh8IQQgA0L/////D4MgEiATfnwhAyAEIANCIIh8IQQgA0L/////D4MgFiAPfnwhAyAEIANCIIh8IQQgA0L/////D4MgGiALfnwhAyAEIANCIIh8IQQgA0L/////D4MgADUCGCIeIAd+fCEDIAQgA0IgiHwhBCADQv////8PgyANIBx+fCEDIAQgA0IgiHwhBCADQv////8PgyARIBh+fCEDIAQgA0IgiHwhBCADQv////8PgyAVIBR+fCEDIAQgA0IgiHwhBCADQv////8PgyAZIBB+fCEDIAQgA0IgiHwhBCADQv////8PgyAdIAx+fCEDIAQgA0IgiHwhBCADQv////8Pg0EANQLQHCIhIAh+fCEDIAQgA0IgiHwhBCADQv////8PgyAFfkL/////D4MhICADQv////8PgyAJICB+fCEDIAQgA0IgiHwhBCAEQiCIIQMgBEL/////D4MgBiABNQIcIiN+fCEEIAMgBEIgiHwhAyAEQv////8PgyAKIB9+fCEEIAMgBEIgiHwhAyAEQv////8PgyAOIBt+fCEEIAMgBEIgiHwhAyAEQv////8PgyASIBd+fCEEIAMgBEIgiHwhAyAEQv////8PgyAWIBN+fCEEIAMgBEIgiHwhAyAEQv////8PgyAaIA9+fCEEIAMgBEIgiHwhAyAEQv////8PgyAeIAt+fCEEIAMgBEIgiHwhAyAEQv////8PgyAANQIcIiIgB358IQQgAyAEQiCIfCEDIARC/////w+DIA0gIH58IQQgAyAEQiCIfCEDIARC/////w+DIBEgHH58IQQgAyAEQiCIfCEDIARC/////w+DIBUgGH58IQQgAyAEQiCIfCEDIARC/////w+DIBkgFH58IQQgAyAEQiCIfCEDIARC/////w+DIB0gEH58IQQgAyAEQiCIfCEDIARC/////w+DICEgDH58IQQgAyAEQiCIfCEDIARC/////w+DQQA1AtQcIiUgCH58IQQgAyAEQiCIfCEDIARC/////w+DIAV+Qv////8PgyEkIARC/////w+DIAkgJH58IQQgAyAEQiCIfCEDIANCIIghBCADQv////8PgyAKICN+fCEDIAQgA0IgiHwhBCADQv////8PgyAOIB9+fCEDIAQgA0IgiHwhBCADQv////8PgyASIBt+fCEDIAQgA0IgiHwhBCADQv////8PgyAWIBd+fCEDIAQgA0IgiHwhBCADQv////8PgyAaIBN+fCEDIAQgA0IgiHwhBCADQv////8PgyAeIA9+fCEDIAQgA0IgiHwhBCADQv////8PgyAiIAt+fCEDIAQgA0IgiHwhBCADQv////8PgyANICR+fCEDIAQgA0IgiHwhBCADQv////8PgyARICB+fCEDIAQgA0IgiHwhBCADQv////8PgyAVIBx+fCEDIAQgA0IgiHwhBCADQv////8PgyAZIBh+fCEDIAQgA0IgiHwhBCADQv////8PgyAdIBR+fCEDIAQgA0IgiHwhBCADQv////8PgyAhIBB+fCEDIAQgA0IgiHwhBCADQv////8PgyAlIAx+fCEDIAQgA0IgiHwhBCACIAM+AgAgBEIgiCEDIARC/////w+DIA4gI358IQQgAyAEQiCIfCEDIARC/////w+DIBIgH358IQQgAyAEQiCIfCEDIARC/////w+DIBYgG358IQQgAyAEQiCIfCEDIARC/////w+DIBogF358IQQgAyAEQiCIfCEDIARC/////w+DIB4gE358IQQgAyAEQiCIfCEDIARC/////w+DICIgD358IQQgAyAEQiCIfCEDIARC/////w+DIBEgJH58IQQgAyAEQiCIfCEDIARC/////w+DIBUgIH58IQQgAyAEQiCIfCEDIARC/////w+DIBkgHH58IQQgAyAEQiCIfCEDIARC/////w+DIB0gGH58IQQgAyAEQiCIfCEDIARC/////w+DICEgFH58IQQgAyAEQiCIfCEDIARC/////w+DICUgEH58IQQgAyAEQiCIfCEDIAIgBD4CBCADQiCIIQQgA0L/////D4MgEiAjfnwhAyAEIANCIIh8IQQgA0L/////D4MgFiAffnwhAyAEIANCIIh8IQQgA0L/////D4MgGiAbfnwhAyAEIANCIIh8IQQgA0L/////D4MgHiAXfnwhAyAEIANCIIh8IQQgA0L/////D4MgIiATfnwhAyAEIANCIIh8IQQgA0L/////D4MgFSAkfnwhAyAEIANCIIh8IQQgA0L/////D4MgGSAgfnwhAyAEIANCIIh8IQQgA0L/////D4MgHSAcfnwhAyAEIANCIIh8IQQgA0L/////D4MgISAYfnwhAyAEIANCIIh8IQQgA0L/////D4MgJSAUfnwhAyAEIANCIIh8IQQgAiADPgIIIARCIIghAyAEQv////8PgyAWICN+fCEEIAMgBEIgiHwhAyAEQv////8PgyAaIB9+fCEEIAMgBEIgiHwhAyAEQv////8PgyAeIBt+fCEEIAMgBEIgiHwhAyAEQv////8PgyAiIBd+fCEEIAMgBEIgiHwhAyAEQv////8PgyAZICR+fCEEIAMgBEIgiHwhAyAEQv////8PgyAdICB+fCEEIAMgBEIgiHwhAyAEQv////8PgyAhIBx+fCEEIAMgBEIgiHwhAyAEQv////8PgyAlIBh+fCEEIAMgBEIgiHwhAyACIAQ+AgwgA0IgiCEEIANC/////w+DIBogI358IQMgBCADQiCIfCEEIANC/////w+DIB4gH358IQMgBCADQiCIfCEEIANC/////w+DICIgG358IQMgBCADQiCIfCEEIANC/////w+DIB0gJH58IQMgBCADQiCIfCEEIANC/////w+DICEgIH58IQMgBCADQiCIfCEEIANC/////w+DICUgHH58IQMgBCADQiCIfCEEIAIgAz4CECAEQiCIIQMgBEL/////D4MgHiAjfnwhBCADIARCIIh8IQMgBEL/////D4MgIiAffnwhBCADIARCIIh8IQMgBEL/////D4MgISAkfnwhBCADIARCIIh8IQMgBEL/////D4MgJSAgfnwhBCADIARCIIh8IQMgAiAEPgIUIANCIIghBCADQv////8PgyAiICN+fCEDIAQgA0IgiHwhBCADQv////8PgyAlICR+fCEDIAQgA0IgiHwhBCACIAM+AhggBEIgiCEDIAIgBD4CHCADpwRAIAJBuBwgAhAsGgUgAkG4HBAqBEAgAkG4HCACECwaCwsLuyEdAX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfkL/////DyEGQgAhAkIAIQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgADUCACIHIAd+fCECIAMgAkIgiHwhAyACQv////8PgyAGfkL/////D4MhCCACQv////8Pg0EANQK4HCIJIAh+fCECIAMgAkIgiHwhAyADIQQgBEIgiCEFQgAhAkIAIQMgAkL/////D4MgByAANQIEIgp+fCECIAMgAkIgiHwhAyACQv////8Pg0IBhiECIANCAYYgAkIgiHwhAyACQv////8PgyAEQv////8Pg3whAiADIAJCIIh8IAV8IQMgAkL/////D4NBADUCvBwiDCAIfnwhAiADIAJCIIh8IQMgAkL/////D4MgBn5C/////w+DIQsgAkL/////D4MgCSALfnwhAiADIAJCIIh8IQMgAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DIAcgADUCCCINfnwhAiADIAJCIIh8IQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgCiAKfnwhAiADIAJCIIh8IQMgAkL/////D4MgBEL/////D4N8IQIgAyACQiCIfCAFfCEDIAJC/////w+DIAwgC358IQIgAyACQiCIfCEDIAJC/////w+DQQA1AsAcIg8gCH58IQIgAyACQiCIfCEDIAJC/////w+DIAZ+Qv////8PgyEOIAJC/////w+DIAkgDn58IQIgAyACQiCIfCEDIAMhBCAEQiCIIQVCACECQgAhAyACQv////8PgyAHIAA1AgwiEH58IQIgAyACQiCIfCEDIAJC/////w+DIAogDX58IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyACQv////8PgyAMIA5+fCECIAMgAkIgiHwhAyACQv////8PgyAPIAt+fCECIAMgAkIgiHwhAyACQv////8Pg0EANQLEHCISIAh+fCECIAMgAkIgiHwhAyACQv////8PgyAGfkL/////D4MhESACQv////8PgyAJIBF+fCECIAMgAkIgiHwhAyADIQQgBEIgiCEFQgAhAkIAIQMgAkL/////D4MgByAANQIQIhN+fCECIAMgAkIgiHwhAyACQv////8PgyAKIBB+fCECIAMgAkIgiHwhAyACQv////8Pg0IBhiECIANCAYYgAkIgiHwhAyACQv////8PgyANIA1+fCECIAMgAkIgiHwhAyACQv////8PgyAEQv////8Pg3whAiADIAJCIIh8IAV8IQMgAkL/////D4MgDCARfnwhAiADIAJCIIh8IQMgAkL/////D4MgDyAOfnwhAiADIAJCIIh8IQMgAkL/////D4MgEiALfnwhAiADIAJCIIh8IQMgAkL/////D4NBADUCyBwiFSAIfnwhAiADIAJCIIh8IQMgAkL/////D4MgBn5C/////w+DIRQgAkL/////D4MgCSAUfnwhAiADIAJCIIh8IQMgAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DIAcgADUCFCIWfnwhAiADIAJCIIh8IQMgAkL/////D4MgCiATfnwhAiADIAJCIIh8IQMgAkL/////D4MgDSAQfnwhAiADIAJCIIh8IQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgBEL/////D4N8IQIgAyACQiCIfCAFfCEDIAJC/////w+DIAwgFH58IQIgAyACQiCIfCEDIAJC/////w+DIA8gEX58IQIgAyACQiCIfCEDIAJC/////w+DIBIgDn58IQIgAyACQiCIfCEDIAJC/////w+DIBUgC358IQIgAyACQiCIfCEDIAJC/////w+DQQA1AswcIhggCH58IQIgAyACQiCIfCEDIAJC/////w+DIAZ+Qv////8PgyEXIAJC/////w+DIAkgF358IQIgAyACQiCIfCEDIAMhBCAEQiCIIQVCACECQgAhAyACQv////8PgyAHIAA1AhgiGX58IQIgAyACQiCIfCEDIAJC/////w+DIAogFn58IQIgAyACQiCIfCEDIAJC/////w+DIA0gE358IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIBAgEH58IQIgAyACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyACQv////8PgyAMIBd+fCECIAMgAkIgiHwhAyACQv////8PgyAPIBR+fCECIAMgAkIgiHwhAyACQv////8PgyASIBF+fCECIAMgAkIgiHwhAyACQv////8PgyAVIA5+fCECIAMgAkIgiHwhAyACQv////8PgyAYIAt+fCECIAMgAkIgiHwhAyACQv////8Pg0EANQLQHCIbIAh+fCECIAMgAkIgiHwhAyACQv////8PgyAGfkL/////D4MhGiACQv////8PgyAJIBp+fCECIAMgAkIgiHwhAyADIQQgBEIgiCEFQgAhAkIAIQMgAkL/////D4MgByAANQIcIhx+fCECIAMgAkIgiHwhAyACQv////8PgyAKIBl+fCECIAMgAkIgiHwhAyACQv////8PgyANIBZ+fCECIAMgAkIgiHwhAyACQv////8PgyAQIBN+fCECIAMgAkIgiHwhAyACQv////8Pg0IBhiECIANCAYYgAkIgiHwhAyACQv////8PgyAEQv////8Pg3whAiADIAJCIIh8IAV8IQMgAkL/////D4MgDCAafnwhAiADIAJCIIh8IQMgAkL/////D4MgDyAXfnwhAiADIAJCIIh8IQMgAkL/////D4MgEiAUfnwhAiADIAJCIIh8IQMgAkL/////D4MgFSARfnwhAiADIAJCIIh8IQMgAkL/////D4MgGCAOfnwhAiADIAJCIIh8IQMgAkL/////D4MgGyALfnwhAiADIAJCIIh8IQMgAkL/////D4NBADUC1BwiHiAIfnwhAiADIAJCIIh8IQMgAkL/////D4MgBn5C/////w+DIR0gAkL/////D4MgCSAdfnwhAiADIAJCIIh8IQMgAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DIAogHH58IQIgAyACQiCIfCEDIAJC/////w+DIA0gGX58IQIgAyACQiCIfCEDIAJC/////w+DIBAgFn58IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIBMgE358IQIgAyACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyACQv////8PgyAMIB1+fCECIAMgAkIgiHwhAyACQv////8PgyAPIBp+fCECIAMgAkIgiHwhAyACQv////8PgyASIBd+fCECIAMgAkIgiHwhAyACQv////8PgyAVIBR+fCECIAMgAkIgiHwhAyACQv////8PgyAYIBF+fCECIAMgAkIgiHwhAyACQv////8PgyAbIA5+fCECIAMgAkIgiHwhAyACQv////8PgyAeIAt+fCECIAMgAkIgiHwhAyABIAI+AgAgAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DIA0gHH58IQIgAyACQiCIfCEDIAJC/////w+DIBAgGX58IQIgAyACQiCIfCEDIAJC/////w+DIBMgFn58IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyACQv////8PgyAPIB1+fCECIAMgAkIgiHwhAyACQv////8PgyASIBp+fCECIAMgAkIgiHwhAyACQv////8PgyAVIBd+fCECIAMgAkIgiHwhAyACQv////8PgyAYIBR+fCECIAMgAkIgiHwhAyACQv////8PgyAbIBF+fCECIAMgAkIgiHwhAyACQv////8PgyAeIA5+fCECIAMgAkIgiHwhAyABIAI+AgQgAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DIBAgHH58IQIgAyACQiCIfCEDIAJC/////w+DIBMgGX58IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIBYgFn58IQIgAyACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyACQv////8PgyASIB1+fCECIAMgAkIgiHwhAyACQv////8PgyAVIBp+fCECIAMgAkIgiHwhAyACQv////8PgyAYIBd+fCECIAMgAkIgiHwhAyACQv////8PgyAbIBR+fCECIAMgAkIgiHwhAyACQv////8PgyAeIBF+fCECIAMgAkIgiHwhAyABIAI+AgggAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DIBMgHH58IQIgAyACQiCIfCEDIAJC/////w+DIBYgGX58IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyACQv////8PgyAVIB1+fCECIAMgAkIgiHwhAyACQv////8PgyAYIBp+fCECIAMgAkIgiHwhAyACQv////8PgyAbIBd+fCECIAMgAkIgiHwhAyACQv////8PgyAeIBR+fCECIAMgAkIgiHwhAyABIAI+AgwgAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DIBYgHH58IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIBkgGX58IQIgAyACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyACQv////8PgyAYIB1+fCECIAMgAkIgiHwhAyACQv////8PgyAbIBp+fCECIAMgAkIgiHwhAyACQv////8P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2IEBIAEQlgELC2kAQeiFARCUAUHohQFB6IUBEJsBIABBmIMBQTBByIMBEKUBQciDAUGohAEQmAEgAEGohAFBqIQBEJYBQaiEAUGIhQEQnAFBiIUBQaiEAUGIhQEQlgFBiIUBQeiFARCfAQRAQQAPC0EBDwsRACAAEJEBIABB4ABqEJEBcQsLACAAQcABahCRAQsQACAAEJMBIABB4ABqEJMBCxkAIAAQkwEgAEHgAGoQlAEgAEHAAWoQkwELggIAIAEgACkDADcDACABIAApAwg3AwggASAAKQMQNwMQIAEgACkDGDcDGCABIAApAyA3AyAgASAAKQMoNwMoIAEgACkDMDcDMCABIAApAzg3AzggASAAKQNANwNAIAEgACkDSDcDSCABIAApA1A3A1AgASAAKQNYNwNYIAEgACkDYDcDYCABIAApA2g3A2ggASAAKQNwNwNwIAEgACkDeDcDeCABIAApA4ABNwOAASABIAApA4gBNwOIASABIAApA5ABNwOQASABIAApA5gBNwOYASABIAApA6ABNwOgASABIAApA6gBNwOoASABIAApA7ABNwOwASABIAApA7gBNwO4AQuSAwAgASAAKQMANwMAIAEgACkDCDcDCCABIAApAxA3AxAgASAAKQMYNwMYIAEgACkDIDcDICABIAApAyg3AyggASAAKQMwNwMwIAEgACkDODcDOCABIAApA0A3A0AgASAAKQNINwNIIAEgACkDUDcDUCABIAApA1g3A1ggASAAKQNgNwNgIAEgACkDaDcDaCABIAApA3A3A3AgASAAKQN4NwN4IAEgACkDgAE3A4ABIAEgACkDiAE3A4gBIAEgACkDkAE3A5ABIAEgACkDmAE3A5gBIAEgACkDoAE3A6ABIAEgACkDqAE3A6gBIAEgACkDsAE3A7ABIAEgACkDuAE3A7gBIAEgACkDwAE3A8ABIAEgACkDyAE3A8gBIAEgACkD0AE3A9ABIAEgACkD2AE3A9gBIAEgACkD4AE3A+ABIAEgACkD6AE3A+gBIAEgACkD8AE3A/ABIAEgACkD+AE3A/gBIAEgACkDgAI3A4ACIAEgACkDiAI3A4gCIAEgACkDkAI3A5ACIAEgACkDmAI3A5gCCy8AIAAQqAEEQCABEKsBBSABQcABahCUASAAQeAAaiABQeAAahCVASAAIAEQlQELCxwBAX8gACABEJ8BIABB4ABqIAFB4ABqEJ8BcQ8LiwEBAX8gAEHAAWohAiAAEKkBBEAgARCoAQ8LIAEQqAEEQEEADwsgAhCSAQRAIAAgARCvAQ8LIAJBqIcBEJgBIAFBqIcBQYiIARCWASACQaiHAUHoiAEQlgEgAUHgAGpB6IgBQciJARCWASAAQYiIARCfAQRAIABB4ABqQciJARCfAQRAQQEPCwtBAA8L2QECAX8BfyAAQcABaiECIAFBwAFqIQMgABCpAQRAIAEQqQEPCyABEKkBBEBBAA8LIAIQkgEEQCABIAAQsAEPCyADEJIBBEAgACABELABDwsgAkGoigEQmAEgA0GIiwEQmAEgAEGIiwFB6IsBEJYBIAFBqIoBQciMARCWASACQaiKAUGojQEQlgEgA0GIiwFBiI4BEJYBIABB4ABqQYiOAUHojgEQlgEgAUHgAGpBqI0BQciPARCWAUHoiwFByIwBEJ8BBEBB6I4BQciPARCfAQRAQQEPCwtBAA8LrAIAIAAQqAEEQCAAIAEQrgEPCyAAQaiQARCYASAAQeAAakGIkQEQmAFBiJEBQeiRARCYASAAQYiRAUHIkgEQmQFByJIBQciSARCYAUHIkgFBqJABQciSARCaAUHIkgFB6JEBQciSARCaAUHIkgFByJIBQciSARCZAUGokAFBqJABQaiTARCZAUGokwFBqJABQaiTARCZASAAQeAAaiAAQeAAaiABQcABahCZAUGokwEgARCYASABQciSASABEJoBIAFByJIBIAEQmgFB6JEBQeiRAUGIlAEQmQFBiJQBQYiUAUGIlAEQmQFBiJQBQYiUAUGIlAEQmQFByJIBIAEgAUHgAGoQmgEgAUHgAGpBqJMBIAFB4ABqEJYBIAFB4ABqQYiUASABQeAAahCaAQvUAgAgABCpAQRAIAAgARCtAQ8LIABBwAFqEJIBBEAgACABELIBDw8LIABB6JQBEJgBIABB4ABqQciVARCYAUHIlQFBqJYBEJgBIABByJUBQYiXARCZAUGIlwFBiJcBEJgBQYiXAUHolAFBiJcBEJoBQYiXAUGolgFBiJcBEJoBQYiXAUGIlwFBiJcBEJkBQeiUAUHolAFB6JcBEJkBQeiXAUHolAFB6JcBEJkBQeiXAUHImAEQmAEgAEHgAGogAEHAAWpBqJkBEJYBQYiXAUGIlwEgARCZAUHImAEgASABEJoBQaiWAUGolgFBiJoBEJkBQYiaAUGImgFBiJoBEJkBQYiaAUGImgFBiJoBEJkBQYiXASABIAFB4ABqEJoBIAFB4ABqQeiXASABQeAAahCWASABQeAAakGImgEgAUHgAGoQmgFBqJkBQaiZASABQcABahCZAQvsAgEBfyAAQcABaiEDIAAQqAEEQCABIAIQrAEgAkHAAWoQlAEPCyABEKgBBEAgACACEKwBIAJBwAFqEJQBDwsgACABEJ8BBEAgAEHgAGogAUHgAGoQnwEEQCABIAIQsgEPCwsgASAAQeiaARCaASABQeAAaiAAQeAAakGonAEQmgFB6JoBQcibARCYAUHImwFByJsBQYidARCZAUGInQFBiJ0BQYidARCZAUHomgFBiJ0BQeidARCWAUGonAFBqJwBQcieARCZASAAQYidAUGIoAEQlgFByJ4BQaifARCYAUGIoAFBiKABQeigARCZAUGonwFB6J0BIAIQmgEgAkHooAEgAhCaASAAQeAAakHonQFByKEBEJYBQcihAUHIoQFByKEBEJkBQYigASACIAJB4ABqEJoBIAJB4ABqQcieASACQeAAahCWASACQeAAakHIoQEgAkHgAGoQmgFB6JoBQeiaASACQcABahCZAQvcAwEBfyAAQcABaiEDIAAQqQEEQCABIAIQrAEgAkHAAWoQlAEPCyABEKgBBEAgACACEK0BDwsgAxCSAQRAIAAgASACELQBDwsgA0GoogEQmAEgAUGoogFBiKMBEJYBIANBqKIBQeijARCWASABQeAAakHoowFByKQBEJYBIABBiKMBEJ8BBEAgAEHgAGpByKQBEJ8BBEAgASACELIBDwsLQYijASAAQailARCaAUHIpAEgAEHgAGpB6KYBEJoBQailAUGIpgEQmAFBiKYBQYimAUHIpwEQmQFByKcBQcinAUHIpwEQmQFBqKUBQcinAUGoqAEQlgFB6KYBQeimAUGIqQEQmQEgAEHIpwFByKoBEJYBQYipAUHoqQEQmAFByKoBQciqAUGoqwEQmQFB6KkBQaioASACEJoBIAJBqKsBIAIQmgEgAEHgAGpBqKgBQYisARCWAUGIrAFBiKwBQYisARCZAUHIqgEgAiACQeAAahCaASACQeAAakGIqQEgAkHgAGoQlgEgAkHgAGpBiKwBIAJB4ABqEJoBIANBqKUBIAJBwAFqEJkBIAJBwAFqIAJBwAFqEJgBIAJBwAFqQaiiASACQcABahCaASACQcABakGIpgEgAkHAAWoQmgELpQQCAX8BfyAAQcABaiEDIAFBwAFqIQQgABCpAQRAIAEgAhCtAQ8LIAEQqQEEQCAAIAIQrQEPCyADEJIBBEAgASAAIAIQtQEPCyAEEJIBBEAgACABIAIQtQEPCyADQeisARCYASAEQcitARCYASAAQcitAUGorgEQlgEgAUHorAFBiK8BEJYBIANB6KwBQeivARCWASAEQcitAUHIsAEQlgEgAEHgAGpByLABQaixARCWASABQeAAakHorwFBiLIBEJYBQaiuAUGIrwEQnwEEQEGosQFBiLIBEJ8BBEAgACACELMBDwsLQYivAUGorgFB6LIBEJoBQYiyAUGosQFByLMBEJoBQeiyAUHosgFBqLQBEJkBQai0AUGotAEQmAFB6LIBQai0AUGItQEQlgFByLMBQcizAUHotQEQmQFBqK4BQai0AUGotwEQlgFB6LUBQci2ARCYAUGotwFBqLcBQYi4ARCZAUHItgFBiLUBIAIQmgEgAkGIuAEgAhCaAUGosQFBiLUBQei4ARCWAUHouAFB6LgBQei4ARCZAUGotwEgAiACQeAAahCaASACQeAAakHotQEgAkHgAGoQlgEgAkHgAGpB6LgBIAJB4ABqEJoBIAMgBCACQcABahCZASACQcABaiACQcABahCYASACQcABakHorAEgAkHAAWoQmgEgAkHAAWpByK0BIAJBwAFqEJoBIAJBwAFqQeiyASACQcABahCWAQsYACAAIAEQlQEgAEHgAGogAUHgAGoQmwELJwAgACABEJUBIABB4ABqIAFB4ABqEJsBIABBwAFqIAFBwAFqEJUBCxYAIAFByLkBELcBIABByLkBIAIQtAELFgAgAUHouwEQtwEgAEHouwEgAhC1AQsWACABQYi+ARC4ASAAQYi+ASACELYBCxgAIAAgARCeASAAQeAAaiABQeAAahCeAQsnACAAIAEQngEgAEHgAGogAUHgAGoQngEgAEHAAWogAUHAAWoQngELGAAgACABEJ0BIABB4ABqIAFB4ABqEJ0BCycAIAAgARCdASAAQeAAaiABQeAAahCdASAAQcABaiABQcABahCdAQteACAAEKkB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7gJBmOwCIAEQlgFBuO4CQfjsAiABQeAAahCWAUG47gJB2O0CIAFBwAFqEJYBCzMAIAAgASACIAMQoQEgAEHgAGogASACIANB4ABqEKEBIABBwAFqIAEgAiADQcABahChAQs1ACAAQcABahCRAQRAIABB4ABqEJEBBEAgABCjAQ8FIABB4ABqEKMBDwsLIABBwAFqEKMBDwuPAgQBfwF/AX8Bf0EAKAIAIQVBACAFIAJBAWpBoAJsajYCACAFEIACIAAhBiAFQaACaiEFQQAhCAJAA0AgCCACRg0BIAYQ/QEEQCAFQaACayAFEIECBSAGIAVBoAJrIAUQggILIAYgAWohBiAFQaACaiEFIAhBAWohCAwACwsgBiABayEGIAVBoAJrIQUgAyACQQFrIARsaiEHIAUgBRCLAgJAA0AgCEUNASAGEP0BBEAgBSAFQaACaxCBAiAHEP8BBSAFQaACa0H47wIQgQIgBSAGIAVBoAJrEIICIAVB+O8CIAcQggILIAYgAWshBiAHIARrIQcgBUGgAmshBSAIQQFrIQgMAAsLQQAgBTYCAAvOAgIBfwF/IAJFBEAgAxCAAg8LIABBmPICEIECIAMQgAIgAiEEAkADQCAEQQFrIQQgASAEai0AACEFIAMgAxCDAiAFQYABTwRAIAVBgAFrIQUgA0GY8gIgAxCCAgsgAyADEIMCIAVBwABPBEAgBUHAAGshBSADQZjyAiADEIICCyADIAMQgwIgBUEgTwRAIAVBIGshBSADQZjyAiADEIICCyADIAMQgwIgBUEQTwRAIAVBEGshBSADQZjyAiADEIICCyADIAMQgwIgBUEITwRAIAVBCGshBSADQZjyAiADEIICCyADIAMQgwIgBUEETwRAIAVBBGshBSADQZjyAiADEIICCyADIAMQgwIgBUECTwRAIAVBAmshBSADQZjyAiADEIICCyADIAMQgwIgBUEBTwRAIAVBAWshBSADQZjyAiADEIICCyAERQ0BDAALCwsyACAAQbj0AhCVASAAQcABaiABEPwBIABB4ABqIAFBwAFqEJUBQbj0AiABQeAAahCVAQsRACAAEP0BIABBoAJqEP0BcQsSACAAEP4BIABBoAJqEP0BcQ8LEAAgABD/ASAAQaACahD/AQsQACAAEIACIABBoAJqEP8BCxgAIAAgARCBAiAAQaACaiAB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QeAAaiAAQcABaiADEJkBIAMgAiADEJYBIANB2M8DIAMQmgEgAyADEPwBIANB+M4DIAMQmQEgASACIANB4ABqEJkBIANB4ABqQbjQAyADQeAAahCWASADQeAAakH4zgMgA0HgAGoQmgEgA0HgAGpB2M8DIANB4ABqEJoBQZjRAyABIANBwAFqEJYBIANBwAFqQfjOAyADQcABahCaASADQcABakHYzwMgA0HAAWoQmQELkAEAIAAgASACQfjRAxCpAiAAQaACaiADQZjUAxCoAiACIANBuNYDEJkBIABBoAJqIAAgBEGgAmoQhAIgBEGgAmogAUG41gMgBEGgAmoQqQIgBEGgAmpB+NEDIARBoAJqEIUCIARBoAJqQZjUAyAEQaACahCFAkGY1AMgBBCBAiAEIAQQkAIgBEH40QMgBBCEAgtQACABIABBMGpBmNcDEBQgAUEwaiAAQTBqQcjXAxAUIAFB4ABqIABB+NcDEBQgAUGQAWogAEGo2AMQFCACIAFBwAFqQfjXA0GY1wMgAhCqAgtsACAAQdj6BCABEJYBIABB4ABqQbj7BCABQeAAahCWASAAQcABakGY/AQgAUHAAWoQlgEgAEGgAmpB+PwEIAFBoAJqEJYBIABBgANqQdj9BCABQYADahCWASAAQeADakG4/gQgAUHgA2oQlgELigIAIAAgARAAIABBMGogAUEwahASIAFBmP8EIAEQlgEgAEHgAGogAUHgAGoQACAAQZABaiABQZABahASIAFB4ABqQfj/BCABQeAAahCWASAAQcABaiABQcABahAAIABB8AFqIAFB8AFqEBIgAUHAAWpB2IAFIAFBwAFqEJYBIABBoAJqIAFBoAJqEAAgAEHQAmogAUHQAmoQEiABQaACakG4gQUgAUGgAmoQlgEgAEGAA2ogAUGAA2oQACAAQbADaiABQbADahASIAFBgANqQZiCBSABQYADahCWASAAQeADaiABQeADahAAIABBkARqIAFBkARqEBIgAUHgA2pB+IIFIAFB4ANqEJYBC2wAIABB2IMFIAEQlgEgAEHgAGpBuIQFIAFB4ABqEJYBIABBwAFqQZiFBSABQcABahCWASAAQaACakH4hQUgAUGgAmoQlgEgAEGAA2pB2IYFIAFBgANqEJYBIABB4ANqQbiHBSABQeADahCWAQuKAgAgACABEAAgAEEwaiABQTBqEBIgAUGYiAUgARCWASAAQeAAaiABQeAAahAAIABBkAFqIAFBkAFqEBIgAUHgAGpB+IgFIAFB4ABqEJYBIABBwAFqIAFBwAFqEAAgAEHwAWogAUHwAWoQEiABQcABakHYiQUgAUHAAWoQlgEgAEGgAmogAUGgAmoQACAAQdACaiABQdACahASIAFBoAJqQbiKBSABQaACahCWASAAQYADaiABQYADahAAIABBsANqIAFBsANqEBIgAUGAA2pBmIsFIAFBgANqEJYBIABB4ANqIAFB4ANqEAAgAEGQBGogAUGQBGoQEiABQeADakH4iwUgAUHgA2oQlgELbAAgAEHYjAUgARCWASAAQeAAakG4jQUgAUHgAGoQlgEgAEHAAWpBmI4FIAFBwAFqEJYBIABBoAJqQfiOBSABQaACahCWASAAQYADakHYjwUgAUGAA2oQlgEgAEHgA2pBuJAFIAFB4ANqEJYBC4oCACAAIAEQACAAQTBqIAFBMGoQEiABQZiRBSABEJYBIABB4ABqIAFB4ABqEAAgAEGQAWogAUGQAWoQEiABQeAAakH4kQUgAUHgAGoQlgEgAEHAAWogAUHAAWoQACAAQfABaiABQfABahASIAFBwAFqQdiSBSABQcABahCWASAAQaACaiABQaACahAAIABB0AJqIAFB0AJqEBIgAUGgAmpBuJMFIAFBoAJqEJYBIABBgANqIAFBgANqEAAgAEGwA2ogAUGwA2oQEiABQYADakGYlAUgAUGAA2oQlgEgAEHgA2ogAUHgA2oQACAAQZAEaiABQZAEahASIAFB4ANqQfiUBSABQeADahCWAQtsACAAQdiVBSABEJYBIABB4ABqQbiWBSABQeAAahCWASAAQcABakGYlwUgAUHAAWoQlgEgAEGgAmpB+JcFIAFBoAJqEJYBIABBgANqQdiYBSABQYADahCWASAAQeADakG4mQUgAUHgA2oQlgELigIAIAAgARAAIABBMGogAUEwahASIAFBmJoFIAEQlgEgAEHgAGogAUHgAGoQACAAQZABaiABQZABahASIAFB4ABqQfiaBSABQeAAahCWASAAQcABaiABQcABahAAIABB8AFqIAFB8AFqEBIgAUHAAWpB2JsFIAFBwAFqEJYBIABBoAJqIAFBoAJqEAAgAEHQAmogAUHQAmoQEiAB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",pq:760,pr:3640,pG1gen:42344,pG1zero:42488,pG1b:5016,pG2gen:42632,pG2zero:42920,pG2b:17224,pOneT:43208,prePSize:288,preQSize:20448,n8q:48,n8r:32,q:"4002409555221667393417789825735904156556882819939007885332058136124031650490837864442687629129015664037894272559787",r:"52435875175126190479447740508185965837690552500527637822603658699938581184513"}};var UA=Object.freeze({__proto__:null,stringifyBigInts:function A(I){if("bigint"==typeof I||void 0!==I.eq)return I.toString(10);if(I instanceof Uint8Array)return p(I,0);if(Array.isArray(I))return I.map(A);if("object"==typeof I){const t={};return Object.keys(I).forEach((i=>{t[i]=A(I[i])})),t}return I},unstringifyBigInts:function A(I){if("string"==typeof I&&/^[0-9]+$/.test(I))return BigInt(I);if(Array.isArray(I))return I.map(A);if("object"==typeof I){if(null===I)return null;const t={};return Object.keys(I).forEach((i=>{t[i]=A(I[i])})),t}return I},beBuff2int:function(A){let I=BigInt(0),t=A.length,i=0;const g=new DataView(A.buffer,A.byteOffset,A.byteLength);for(;t>0;)t>=4?(t-=4,I+=BigInt(g.getUint32(t))<<BigInt(8*i),i+=4):t>=2?(t-=2,I+=BigInt(g.getUint16(t))<<BigInt(8*i),i+=2):(t-=1,I+=BigInt(g.getUint8(t))<<BigInt(8*i),i+=1);return I},beInt2Buff:function(A,I){let t=A;const i=new Uint8Array(I),g=new DataView(i.buffer);let e=I;for(;e>0;)e-4>=0?(e-=4,g.setUint32(e,Number(t&BigInt(4294967295))),t>>=BigInt(32)):e-2>=0?(e-=2,g.setUint16(e,Number(t&BigInt(65535))),t>>=BigInt(16)):(e-=1,g.setUint8(e,Number(t&BigInt(255))),t>>=BigInt(8));if(t)throw new Error("Number does not fit in this length");return i},leBuff2int:function(A){let I=BigInt(0),t=0;const i=new DataView(A.buffer,A.byteOffset,A.byteLength);for(;t<A.length;)t+4<=A.length?(I+=BigInt(i.getUint32(t,!0))<<BigInt(8*t),t+=4):t+4<=A.length?(I+=BigInt(i.getUint16(t,!0))<<BigInt(8*t),t+=2):(I+=BigInt(i.getUint8(t,!0))<<BigInt(8*t),t+=1);return I},leInt2Buff:function(A,I){let t=A;void 0===I&&0==(I=Math.floor((L(A)-1)/8)+1)&&(I=1);const i=new Uint8Array(I),g=new DataView(i.buffer);let e=0;for(;e<I;)e+4<=I?(g.setUint32(e,Number(t&BigInt(4294967295)),!0),e+=4,t>>=BigInt(32)):e+2<=I?(g.setUint16(Number(e,t&BigInt(65535)),!0),e+=2,t>>=BigInt(16)):(g.setUint8(Number(e,t&BigInt(255)),!0),e+=1,t>>=BigInt(8));if(t)throw new Error("Number does not fit in this length");return i}});var bA=Object.freeze({__proto__:null,stringifyBigInts:function A(I){if("bigint"==typeof I||void 0!==I.eq)return I.toString(10);if(Array.isArray(I))return I.map(A);if("object"==typeof I){const t={};return Object.keys(I).forEach((i=>{t[i]=A(I[i])})),t}return I},unstringifyBigInts:function A(I){if("string"==typeof I&&/^[0-9]+$/.test(I))return o(I);if(Array.isArray(I))return I.map(A);if("object"==typeof I){const t={};return Object.keys(I).forEach((i=>{t[i]=A(I[i])})),t}return I},beBuff2int:function(A){let I=o.zero;for(let t=0;t<A.length;t++){const i=o(A[A.length-t-1]);I=I.add(i.shiftLeft(8*t))}return I},beInt2Buff:function(A,I){let t=A,i=I-1;const g=new Uint8Array(I);for(;t.gt(o.zero)&&i>=0;){let A=Number(t.and(o("255")));g[i]=A,i--,t=t.shiftRight(8)}if(!t.eq(o.zero))throw new Error("Number does not fit in this length");return g},leBuff2int:function(A){let I=o.zero;for(let t=0;t<A.length;t++){const i=o(A[t]);I=I.add(i.shiftLeft(8*t))}return I},leInt2Buff:function(A,I){let t=A,i=0;const g=new Uint8Array(I);for(;t.gt(o.zero)&&i<g.length;){let A=Number(t.and(o(255)));g[i]=A,i++,t=t.shiftRight(8)}if(!t.eq(o.zero))throw new Error("Number does not fit in this length");return g}});let LA={};"function"==typeof BigInt?Object.assign(LA,UA):Object.assign(LA,bA);const kA=[];for(let A=0;A<256;A++)kA[A]=NA(A,8);function NA(A,I){let t=0,i=A;for(let A=0;A<I;A++)t<<=1,t|=1&i,i>>=1;return t}LA.bitReverse=function(A,I){return(kA[A>>>24]|kA[A>>>16&255]<<8|kA[A>>>8&255]<<16|kA[255&A]<<24)>>>32-I},LA.log2=function(A){return(0!=(4294901760&A)?(A&=4294901760,16):0)|(0!=(4278255360&A)?(A&=4278255360,8):0)|(0!=(4042322160&A)?(A&=4042322160,4):0)|(0!=(3435973836&A)?(A&=3435973836,2):0)|0!=(2863311530&A)},LA.buffReverseBits=function(A,I){const t=A.byteLength/I,i=LA.log2(t);if(t!=1<<i)throw new Error("Invalid number of pointers");for(let g=0;g<t;g++){const t=LA.bitReverse(g,i);if(g>t){const i=A.slice(g*I,(g+1)*I);A.set(A.slice(t*I,(t+1)*I),g*I),A.set(i,t*I)}}};let{bitReverse:JA,log2:SA,buffReverseBits:vA,stringifyBigInts:RA,unstringifyBigInts:YA,beBuff2int:qA,beInt2Buff:xA,leBuff2int:PA,leInt2Buff:XA}=LA;var OA=Object.freeze({__proto__:null,bitReverse:JA,log2:SA,buffReverseBits:vA,stringifyBigInts:RA,unstringifyBigInts:YA,beBuff2int:qA,beInt2Buff:xA,leBuff2int:PA,leInt2Buff:XA});const ZA=1<<30;class VA{constructor(A){this.buffers=[],this.byteLength=A;for(let I=0;I<A;I+=ZA){const t=Math.min(A-I,ZA);this.buffers.push(new Uint8Array(t))}}slice(A,I){void 0===I&&(I=this.byteLength),void 0===A&&(A=0);const t=I-A,i=Math.floor(A/ZA);if(i==Math.floor((A+t-1)/ZA)||0==t)return this.buffers[i].slice(A%ZA,A%ZA+t);let g,e=i,C=A%ZA,n=t;for(;n>0;){const A=C+n>ZA?ZA-C:n,I=new Uint8Array(this.buffers[e].buffer,this.buffers[e].byteOffset+C,A);if(A==t)return I.slice();g||(g=t<=ZA?new Uint8Array(t):new VA(t)),g.set(I,t-n),n-=A,e++,C=0}return g}set(A,I){void 0===I&&(I=0);const t=A.byteLength;if(0==t)return;const i=Math.floor(I/ZA);if(i==Math.floor((I+t-1)/ZA))return A instanceof VA&&1==A.buffers.length?this.buffers[i].set(A.buffers[0],I%ZA):this.buffers[i].set(A,I%ZA);let g=i,e=I%ZA,C=t;for(;C>0;){const I=e+C>ZA?ZA-e:C,i=A.slice(t-C,t-C+I);new Uint8Array(this.buffers[g].buffer,this.buffers[g].byteOffset+e,I).set(i),C-=I,g++,e=0}}}function KA(A,I,t,i){return async function(g){const e=Math.floor(g.byteLength/t);if(e*t!==g.byteLength)throw new Error("Invalid buffer size");const C=Math.floor(e/A.concurrency),n=[];for(let Q=0;Q<A.concurrency;Q++){let B;if(B=Q<A.concurrency-1?C:e-Q*C,0==B)continue;const r=[{cmd:"ALLOCSET",var:0,buff:g.slice(Q*C*t,Q*C*t+B*t)},{cmd:"ALLOC",var:1,len:i*B},{cmd:"CALL",fnName:I,params:[{var:0},{val:B},{var:1}]},{cmd:"GET",out:0,var:1,len:i*B}];n.push(A.queueAction(r))}const Q=await Promise.all(n);let B;B=g instanceof VA?new VA(e*i):new Uint8Array(e*i);let r=0;for(let A=0;A<Q.length;A++)B.set(Q[A][0],r),r+=Q[A][0].byteLength;return B}}class jA{constructor(A,I,t,i){if(this.tm=A,this.prefix=I,this.p=i,this.n8=t,this.type="F1",this.m=1,this.half=S(i,G),this.bitLength=L(i),this.mask=Z(J(G,this.bitLength),G),this.pOp1=A.alloc(t),this.pOp2=A.alloc(t),this.pOp3=A.alloc(t),this.tm.instance.exports[I+"_zero"](this.pOp1),this.zero=this.tm.getBuff(this.pOp1,this.n8),this.tm.instance.exports[I+"_one"](this.pOp1),this.one=this.tm.getBuff(this.pOp1,this.n8),this.negone=this.neg(this.one),this.two=this.add(this.one,this.one),this.n64=Math.floor(t/8),this.n32=Math.floor(t/4),8*this.n64!=this.n8)throw new Error("n8 must be a multiple of 8");this.half=S(this.p,G),this.nqr=this.two;let g=this.exp(this.nqr,this.half);for(;!this.eq(g,this.negone);)this.nqr=this.add(this.nqr,this.one),g=this.exp(this.nqr,this.half);this.shift=this.mul(this.nqr,this.nqr),this.shiftInv=this.inv(this.shift),this.s=0;let e=Z(this.p,G);for(;!Y(e);)this.s=this.s+1,e=S(e,G);this.w=[],this.w[this.s]=this.exp(this.nqr,e);for(let A=this.s-1;A>=0;A--)this.w[A]=this.square(this.w[A+1]);if(!this.eq(this.w[0],this.one))throw new Error("Error calculating roots of unity");this.batchToMontgomery=KA(A,I+"_batchToMontgomery",this.n8,this.n8),this.batchFromMontgomery=KA(A,I+"_batchFromMontgomery",this.n8,this.n8)}op2(A,I,t){return this.tm.setBuff(this.pOp1,I),this.tm.setBuff(this.pOp2,t),this.tm.instance.exports[this.prefix+A](this.pOp1,this.pOp2,this.pOp3),this.tm.getBuff(this.pOp3,this.n8)}op2Bool(A,I,t){return this.tm.setBuff(this.pOp1,I),this.tm.setBuff(this.pOp2,t),!!this.tm.instance.exports[this.prefix+A](this.pOp1,this.pOp2)}op1(A,I){return this.tm.setBuff(this.pOp1,I),this.tm.instance.exports[this.prefix+A](this.pOp1,this.pOp3),this.tm.getBuff(this.pOp3,this.n8)}op1Bool(A,I){return this.tm.setBuff(this.pOp1,I),!!this.tm.instance.exports[this.prefix+A](this.pOp1,this.pOp3)}add(A,I){return this.op2("_add",A,I)}eq(A,I){return this.op2Bool("_eq",A,I)}isZero(A){return this.op1Bool("_isZero",A)}sub(A,I){return this.op2("_sub",A,I)}neg(A){return this.op1("_neg",A)}inv(A){return this.op1("_inverse",A)}toMontgomery(A){return this.op1("_toMontgomery",A)}fromMontgomery(A){return this.op1("_fromMontgomery",A)}mul(A,I){return this.op2("_mul",A,I)}div(A,I){return this.tm.setBuff(this.pOp1,A),this.tm.setBuff(this.pOp2,I),this.tm.instance.exports[this.prefix+"_inverse"](this.pOp2,this.pOp2),this.tm.instance.exports[this.prefix+"_mul"](this.pOp1,this.pOp2,this.pOp3),this.tm.getBuff(this.pOp3,this.n8)}square(A){return this.op1("_square",A)}isSquare(A){return this.op1Bool("_isSquare",A)}sqrt(A){return this.op1("_sqrt",A)}exp(A,I){return I instanceof Uint8Array||(I=m(U(I))),this.tm.setBuff(this.pOp1,A),this.tm.setBuff(this.pOp2,I),this.tm.instance.exports[this.prefix+"_exp"](this.pOp1,this.pOp2,I.byteLength,this.pOp3),this.tm.getBuff(this.pOp3,this.n8)}isNegative(A){return this.op1Bool("_isNegative",A)}e(A,I){if(A instanceof Uint8Array)return A;let t=U(A,I);k(t)?(t=V(t),iA(t,this.p)&&(t=$(t,this.p)),t=Z(this.p,t)):iA(t,this.p)&&(t=$(t,this.p));const i=XA(t,this.n8);return this.toMontgomery(i)}toString(A,I){const t=this.fromMontgomery(A),i=p(t,0);return M(i,I)}fromRng(A){let I;const t=new Uint8Array(this.n8);do{I=d;for(let t=0;t<this.n64;t++)I=O(I,J(A.nextU64(),64*t));I=CA(I,this.mask)}while(eA(I,this.p));return l(t,0,I,this.n8),t}random(){return this.fromRng(yA())}toObject(A){const I=this.fromMontgomery(A);return p(I,0)}fromObject(A){const I=new Uint8Array(this.n8);return l(I,0,A,this.n8),this.toMontgomery(I)}toRprLE(A,I,t){A.set(this.fromMontgomery(t),I)}toRprBE(A,I,t){const i=this.fromMontgomery(t);for(let A=0;A<this.n8/2;A++){const I=i[A];i[A]=i[this.n8-1-A],i[this.n8-1-A]=I}A.set(i,I)}fromRprLE(A,I){I=I||0;const t=A.slice(I,I+this.n8);return this.toMontgomery(t)}async batchInverse(A){const I=this.n8,t=this.n8,i=Math.floor(A.byteLength/I);if(i*I!==A.byteLength)throw new Error("Invalid buffer size");const g=Math.floor(i/this.tm.concurrency),e=[];for(let C=0;C<this.tm.concurrency;C++){let n;if(n=C<this.tm.concurrency-1?g:i-C*g,0==n)continue;const Q=[{cmd:"ALLOCSET",var:0,buff:A.slice(C*g*I,C*g*I+n*I)},{cmd:"ALLOC",var:1,len:t*n},{cmd:"CALL",fnName:this.prefix+"_batchInverse",params:[{var:0},{val:I},{val:n},{var:1},{val:t}]},{cmd:"GET",out:0,var:1,len:t*n}];e.push(this.tm.queueAction(Q))}const C=await Promise.all(e);let n;n=A instanceof VA?new VA(i*t):new Uint8Array(i*t);let Q=0;for(let A=0;A<C.length;A++)n.set(C[A][0],Q),Q+=C[A][0].byteLength;return n}}class zA{constructor(A,I,t){this.tm=A,this.prefix=I,this.F=t,this.type="F2",this.m=2*t.m,this.n8=2*this.F.n8,this.n32=2*this.F.n32,this.n64=2*this.F.n64,this.pOp1=A.alloc(2*t.n8),this.pOp2=A.alloc(2*t.n8),this.pOp3=A.alloc(2*t.n8),this.tm.instance.exports[I+"_zero"](this.pOp1),this.zero=A.getBuff(this.pOp1,this.n8),this.tm.instance.exports[I+"_one"](this.pOp1),this.one=A.getBuff(this.pOp1,this.n8),this.negone=this.neg(this.one),this.two=this.add(this.one,this.one)}op2(A,I,t){return this.tm.setBuff(this.pOp1,I),this.tm.setBuff(this.pOp2,t),this.tm.instance.exports[this.prefix+A](this.pOp1,this.pOp2,this.pOp3),this.tm.getBuff(this.pOp3,this.n8)}op2Bool(A,I,t){return this.tm.setBuff(this.pOp1,I),this.tm.setBuff(this.pOp2,t),!!this.tm.instance.exports[this.prefix+A](this.pOp1,this.pOp2)}op1(A,I){return this.tm.setBuff(this.pOp1,I),this.tm.instance.exports[this.prefix+A](this.pOp1,this.pOp3),this.tm.getBuff(this.pOp3,this.n8)}op1Bool(A,I){return this.tm.setBuff(this.pOp1,I),!!this.tm.instance.exports[this.prefix+A](this.pOp1,this.pOp3)}add(A,I){return this.op2("_add",A,I)}eq(A,I){return this.op2Bool("_eq",A,I)}isZero(A){return this.op1Bool("_isZero",A)}sub(A,I){return this.op2("_sub",A,I)}neg(A){return this.op1("_neg",A)}inv(A){return this.op1("_inverse",A)}isNegative(A){return this.op1Bool("_isNegative",A)}toMontgomery(A){return this.op1("_toMontgomery",A)}fromMontgomery(A){return this.op1("_fromMontgomery",A)}mul(A,I){return this.op2("_mul",A,I)}mul1(A,I){return this.op2("_mul1",A,I)}div(A,I){return this.tm.setBuff(this.pOp1,A),this.tm.setBuff(this.pOp2,I),this.tm.instance.exports[this.prefix+"_inverse"](this.pOp2,this.pOp2),this.tm.instance.exports[this.prefix+"_mul"](this.pOp1,this.pOp2,this.pOp3),this.tm.getBuff(this.pOp3,this.n8)}square(A){return this.op1("_square",A)}isSquare(A){return this.op1Bool("_isSquare",A)}sqrt(A){return this.op1("_sqrt",A)}exp(A,I){return I instanceof Uint8Array||(I=m(U(I))),this.tm.setBuff(this.pOp1,A),this.tm.setBuff(this.pOp2,I),this.tm.instance.exports[this.prefix+"_exp"](this.pOp1,this.pOp2,I.byteLength,this.pOp3),this.tm.getBuff(this.pOp3,this.n8)}e(A,I){if(A instanceof Uint8Array)return A;if(Array.isArray(A)&&2==A.length){const t=this.F.e(A[0],I),i=this.F.e(A[1],I),g=new Uint8Array(2*this.F.n8);return g.set(t),g.set(i,2*this.F.n8),g}throw new Error("invalid F2")}toString(A,I){return`[${this.F.toString(A.slice(0,this.F.n8),I)}, ${this.F.toString(A.slice(this.F.n8),I)}]`}fromRng(A){const I=this.F.fromRng(A),t=this.F.fromRng(A),i=new Uint8Array(2*this.F.n8);return i.set(I),i.set(t,this.F.n8),i}random(){return this.fromRng(yA())}toObject(A){return[this.F.toObject(A.slice(0,this.F.n8)),this.F.toObject(A.slice(this.F.n8,2*this.F.n8))]}fromObject(A){const I=new Uint8Array(2*this.F.n8),t=this.F.fromObject(A[0]),i=this.F.fromObject(A[1]);return I.set(t),I.set(i,this.F.n8),I}c1(A){return A.slice(0,this.F.n8)}c2(A){return A.slice(this.F.n8)}}class WA{constructor(A,I,t){this.tm=A,this.prefix=I,this.F=t,this.type="F3",this.m=3*t.m,this.n8=3*this.F.n8,this.n32=3*this.F.n32,this.n64=3*this.F.n64,this.pOp1=A.alloc(3*t.n8),this.pOp2=A.alloc(3*t.n8),this.pOp3=A.alloc(3*t.n8),this.tm.instance.exports[I+"_zero"](this.pOp1),this.zero=A.getBuff(this.pOp1,this.n8),this.tm.instance.exports[I+"_one"](this.pOp1),this.one=A.getBuff(this.pOp1,this.n8),this.negone=this.neg(this.one),this.two=this.add(this.one,this.one)}op2(A,I,t){return this.tm.setBuff(this.pOp1,I),this.tm.setBuff(this.pOp2,t),this.tm.instance.exports[this.prefix+A](this.pOp1,this.pOp2,this.pOp3),this.tm.getBuff(this.pOp3,this.n8)}op2Bool(A,I,t){return this.tm.setBuff(this.pOp1,I),this.tm.setBuff(this.pOp2,t),!!this.tm.instance.exports[this.prefix+A](this.pOp1,this.pOp2)}op1(A,I){return this.tm.setBuff(this.pOp1,I),this.tm.instance.exports[this.prefix+A](this.pOp1,this.pOp3),this.tm.getBuff(this.pOp3,this.n8)}op1Bool(A,I){return this.tm.setBuff(this.pOp1,I),!!this.tm.instance.exports[this.prefix+A](this.pOp1,this.pOp3)}eq(A,I){return this.op2Bool("_eq",A,I)}isZero(A){return this.op1Bool("_isZero",A)}add(A,I){return this.op2("_add",A,I)}sub(A,I){return this.op2("_sub",A,I)}neg(A){return this.op1("_neg",A)}inv(A){return this.op1("_inverse",A)}isNegative(A){return this.op1Bool("_isNegative",A)}toMontgomery(A){return this.op1("_toMontgomery",A)}fromMontgomery(A){return this.op1("_fromMontgomery",A)}mul(A,I){return this.op2("_mul",A,I)}div(A,I){return this.tm.setBuff(this.pOp1,A),this.tm.setBuff(this.pOp2,I),this.tm.instance.exports[this.prefix+"_inverse"](this.pOp2,this.pOp2),this.tm.instance.exports[this.prefix+"_mul"](this.pOp1,this.pOp2,this.pOp3),this.tm.getBuff(this.pOp3,this.n8)}square(A){return this.op1("_square",A)}isSquare(A){return this.op1Bool("_isSquare",A)}sqrt(A){return this.op1("_sqrt",A)}exp(A,I){return I instanceof Uint8Array||(I=m(U(I))),this.tm.setBuff(this.pOp1,A),this.tm.setBuff(this.pOp2,I),this.tm.instance.exports[this.prefix+"_exp"](this.pOp1,this.pOp2,I.byteLength,this.pOp3),this.getBuff(this.pOp3,this.n8)}e(A,I){if(A instanceof Uint8Array)return A;if(Array.isArray(A)&&3==A.length){const t=this.F.e(A[0],I),i=this.F.e(A[1],I),g=this.F.e(A[2],I),e=new Uint8Array(3*this.F.n8);return e.set(t),e.set(i,this.F.n8),e.set(g,2*this.F.n8),e}throw new Error("invalid F3")}toString(A,I){return`[${this.F.toString(A.slice(0,this.F.n8),I)}, ${this.F.toString(A.slice(this.F.n8,2*this.F.n8),I)}, ${this.F.toString(A.slice(2*this.F.n8),I)}]`}fromRng(A){const I=this.F.fromRng(A),t=this.F.fromRng(A),i=this.F.fromRng(A),g=new Uint8Array(3*this.F.n8);return g.set(I),g.set(t,this.F.n8),g.set(i,2*this.F.n8),g}random(){return this.fromRng(yA())}toObject(A){return[this.F.toObject(A.slice(0,this.F.n8)),this.F.toObject(A.slice(this.F.n8,2*this.F.n8)),this.F.toObject(A.slice(2*this.F.n8,3*this.F.n8))]}fromObject(A){const I=new Uint8Array(3*this.F.n8),t=this.F.fromObject(A[0]),i=this.F.fromObject(A[1]),g=this.F.fromObject(A[2]);return I.set(t),I.set(i,this.F.n8),I.set(g,2*this.F.n8),I}c1(A){return A.slice(0,this.F.n8)}c2(A){return A.slice(this.F.n8,2*this.F.n8)}c3(A){return A.slice(2*this.F.n8)}}class TA{constructor(A,I,t,i,g,e){this.tm=A,this.prefix=I,this.F=t,this.pOp1=A.alloc(3*t.n8),this.pOp2=A.alloc(3*t.n8),this.pOp3=A.alloc(3*t.n8),this.tm.instance.exports[I+"_zero"](this.pOp1),this.zero=this.tm.getBuff(this.pOp1,3*t.n8),this.tm.instance.exports[I+"_zeroAffine"](this.pOp1),this.zeroAffine=this.tm.getBuff(this.pOp1,2*t.n8),this.one=this.tm.getBuff(i,3*t.n8),this.g=this.one,this.oneAffine=this.tm.getBuff(i,2*t.n8),this.gAffine=this.oneAffine,this.b=this.tm.getBuff(g,t.n8),e&&(this.cofactor=m(e)),this.negone=this.neg(this.one),this.two=this.add(this.one,this.one),this.batchLEMtoC=KA(A,I+"_batchLEMtoC",2*t.n8,t.n8),this.batchLEMtoU=KA(A,I+"_batchLEMtoU",2*t.n8,2*t.n8),this.batchCtoLEM=KA(A,I+"_batchCtoLEM",t.n8,2*t.n8),this.batchUtoLEM=KA(A,I+"_batchUtoLEM",2*t.n8,2*t.n8),this.batchToJacobian=KA(A,I+"_batchToJacobian",2*t.n8,3*t.n8),this.batchToAffine=KA(A,I+"_batchToAffine",3*t.n8,2*t.n8)}op2(A,I,t){return this.tm.setBuff(this.pOp1,I),this.tm.setBuff(this.pOp2,t),this.tm.instance.exports[this.prefix+A](this.pOp1,this.pOp2,this.pOp3),this.tm.getBuff(this.pOp3,3*this.F.n8)}op2bool(A,I,t){return this.tm.setBuff(this.pOp1,I),this.tm.setBuff(this.pOp2,t),!!this.tm.instance.exports[this.prefix+A](this.pOp1,this.pOp2,this.pOp3)}op1(A,I){return this.tm.setBuff(this.pOp1,I),this.tm.instance.exports[this.prefix+A](this.pOp1,this.pOp3),this.tm.getBuff(this.pOp3,3*this.F.n8)}op1Affine(A,I){return this.tm.setBuff(this.pOp1,I),this.tm.instance.exports[this.prefix+A](this.pOp1,this.pOp3),this.tm.getBuff(this.pOp3,2*this.F.n8)}op1Bool(A,I){return this.tm.setBuff(this.pOp1,I),!!this.tm.instance.exports[this.prefix+A](this.pOp1,this.pOp3)}add(A,I){if(A.byteLength==3*this.F.n8){if(I.byteLength==3*this.F.n8)return this.op2("_add",A,I);if(I.byteLength==2*this.F.n8)return this.op2("_addMixed",A,I);throw new Error("invalid point size")}if(A.byteLength==2*this.F.n8){if(I.byteLength==3*this.F.n8)return this.op2("_addMixed",I,A);if(I.byteLength==2*this.F.n8)return this.op2("_addAffine",A,I);throw new Error("invalid point size")}throw new Error("invalid point size")}sub(A,I){if(A.byteLength==3*this.F.n8){if(I.byteLength==3*this.F.n8)return this.op2("_sub",A,I);if(I.byteLength==2*this.F.n8)return this.op2("_subMixed",A,I);throw new Error("invalid point size")}if(A.byteLength==2*this.F.n8){if(I.byteLength==3*this.F.n8)return this.op2("_subMixed",I,A);if(I.byteLength==2*this.F.n8)return this.op2("_subAffine",A,I);throw new Error("invalid point size")}throw new Error("invalid point size")}neg(A){if(A.byteLength==3*this.F.n8)return this.op1("_neg",A);if(A.byteLength==2*this.F.n8)return this.op1Affine("_negAffine",A);throw new Error("invalid point size")}double(A){if(A.byteLength==3*this.F.n8)return this.op1("_double",A);if(A.byteLength==2*this.F.n8)return this.op1("_doubleAffine",A);throw new Error("invalid point size")}isZero(A){if(A.byteLength==3*this.F.n8)return this.op1Bool("_isZero",A);if(A.byteLength==2*this.F.n8)return this.op1Bool("_isZeroAffine",A);throw new Error("invalid point size")}timesScalar(A,I){let t;if(I instanceof Uint8Array||(I=m(U(I))),A.byteLength==3*this.F.n8)t=this.prefix+"_timesScalar";else{if(A.byteLength!=2*this.F.n8)throw new Error("invalid point size");t=this.prefix+"_timesScalarAffine"}return this.tm.setBuff(this.pOp1,A),this.tm.setBuff(this.pOp2,I),this.tm.instance.exports[t](this.pOp1,this.pOp2,I.byteLength,this.pOp3),this.tm.getBuff(this.pOp3,3*this.F.n8)}timesFr(A,I){let t;if(A.byteLength==3*this.F.n8)t=this.prefix+"_timesFr";else{if(A.byteLength!=2*this.F.n8)throw new Error("invalid point size");t=this.prefix+"_timesFrAffine"}return this.tm.setBuff(this.pOp1,A),this.tm.setBuff(this.pOp2,I),this.tm.instance.exports[t](this.pOp1,this.pOp2,this.pOp3),this.tm.getBuff(this.pOp3,3*this.F.n8)}eq(A,I){if(A.byteLength==3*this.F.n8){if(I.byteLength==3*this.F.n8)return this.op2bool("_eq",A,I);if(I.byteLength==2*this.F.n8)return this.op2bool("_eqMixed",A,I);throw new Error("invalid point size")}if(A.byteLength==2*this.F.n8){if(I.byteLength==3*this.F.n8)return this.op2bool("_eqMixed",I,A);if(I.byteLength==2*this.F.n8)return this.op2bool("_eqAffine",A,I);throw new Error("invalid point size")}throw new Error("invalid point size")}toAffine(A){if(A.byteLength==3*this.F.n8)return this.op1Affine("_toAffine",A);if(A.byteLength==2*this.F.n8)return A;throw new Error("invalid point size")}toJacobian(A){if(A.byteLength==3*this.F.n8)return A;if(A.byteLength==2*this.F.n8)return this.op1("_toJacobian",A);throw new Error("invalid point size")}toRprUncompressed(A,I,t){if(this.tm.setBuff(this.pOp1,t),t.byteLength==3*this.F.n8)this.tm.instance.exports[this.prefix+"_toAffine"](this.pOp1,this.pOp1);else if(t.byteLength!=2*this.F.n8)throw new Error("invalid point size");this.tm.instance.exports[this.prefix+"_LEMtoU"](this.pOp1,this.pOp1);const i=this.tm.getBuff(this.pOp1,2*this.F.n8);A.set(i,I)}fromRprUncompressed(A,I){const t=A.slice(I,I+2*this.F.n8);return this.tm.setBuff(this.pOp1,t),this.tm.instance.exports[this.prefix+"_UtoLEM"](this.pOp1,this.pOp1),this.tm.getBuff(this.pOp1,2*this.F.n8)}toRprCompressed(A,I,t){if(this.tm.setBuff(this.pOp1,t),t.byteLength==3*this.F.n8)this.tm.instance.exports[this.prefix+"_toAffine"](this.pOp1,this.pOp1);else if(t.byteLength!=2*this.F.n8)throw new Error("invalid point size");this.tm.instance.exports[this.prefix+"_LEMtoC"](this.pOp1,this.pOp1);const i=this.tm.getBuff(this.pOp1,this.F.n8);A.set(i,I)}fromRprCompressed(A,I){const t=A.slice(I,I+this.F.n8);return this.tm.setBuff(this.pOp1,t),this.tm.instance.exports[this.prefix+"_CtoLEM"](this.pOp1,this.pOp2),this.tm.getBuff(this.pOp2,2*this.F.n8)}toUncompressed(A){const I=new Uint8Array(2*this.F.n8);return this.toRprUncompressed(I,0,A),I}toRprLEM(A,I,t){if(t.byteLength!=2*this.F.n8){if(t.byteLength!=3*this.F.n8)throw new Error("invalid point size");{this.tm.setBuff(this.pOp1,t),this.tm.instance.exports[this.prefix+"_toAffine"](this.pOp1,this.pOp1);const i=this.tm.getBuff(this.pOp1,2*this.F.n8);A.set(i,I)}}else A.set(t,I)}fromRprLEM(A,I){return I=I||0,A.slice(I,I+2*this.F.n8)}toString(A,I){if(A.byteLength==3*this.F.n8){return`[ ${this.F.toString(A.slice(0,this.F.n8),I)}, ${this.F.toString(A.slice(this.F.n8,2*this.F.n8),I)}, ${this.F.toString(A.slice(2*this.F.n8),I)} ]`}if(A.byteLength==2*this.F.n8){return`[ ${this.F.toString(A.slice(0,this.F.n8),I)}, ${this.F.toString(A.slice(this.F.n8),I)} ]`}throw new Error("invalid point size")}isValid(A){if(this.isZero(A))return!0;const I=this.F,t=this.toAffine(A),i=t.slice(0,this.F.n8),g=t.slice(this.F.n8,2*this.F.n8),e=I.add(I.mul(I.square(i),i),this.b),C=I.square(g);return I.eq(e,C)}fromRng(A){const I=this.F;let t,i,g=[];do{g[0]=I.fromRng(A),t=A.nextBool(),i=I.add(I.mul(I.square(g[0]),g[0]),this.b)}while(!I.isSquare(i));g[1]=I.sqrt(i);t^I.isNegative(g[1])&&(g[1]=I.neg(g[1]));let e=new Uint8Array(2*this.F.n8);return e.set(g[0]),e.set(g[1],this.F.n8),this.cofactor&&(e=this.timesScalar(e,this.cofactor)),e}toObject(A){if(this.isZero(A))return[this.F.toObject(this.F.zero),this.F.toObject(this.F.one),this.F.toObject(this.F.zero)];const I=this.F.toObject(A.slice(0,this.F.n8)),t=this.F.toObject(A.slice(this.F.n8,2*this.F.n8));let i;return i=A.byteLength==3*this.F.n8?this.F.toObject(A.slice(2*this.F.n8,3*this.F.n8)):this.F.toObject(this.F.one),[I,t,i]}fromObject(A){const I=this.F.fromObject(A[0]),t=this.F.fromObject(A[1]);let i;if(i=3==A.length?this.F.fromObject(A[2]):this.F.one,this.F.isZero(i,this.F.one))return this.zeroAffine;if(this.F.eq(i,this.F.one)){const A=new Uint8Array(2*this.F.n8);return A.set(I),A.set(t,this.F.n8),A}{const A=new Uint8Array(3*this.F.n8);return A.set(I),A.set(t,this.F.n8),A.set(i,2*this.F.n8),A}}e(A){return A instanceof Uint8Array?A:this.fromObject(A)}x(A){return this.toAffine(A).slice(0,this.F.n8)}y(A){return this.toAffine(A).slice(this.F.n8)}}function _A(A){const I=32767;let t,i;async function g(A){const g=new Uint8Array(A.code),e=await WebAssembly.compile(g);i=new WebAssembly.Memory({initial:A.init,maximum:I}),t=await WebAssembly.instantiate(e,{env:{memory:i}})}function e(A){const t=new Uint32Array(i.buffer,0,1);for(;3&t[0];)t[0]++;const g=t[0];if(t[0]+=A,t[0]+A>i.buffer.byteLength){const g=i.buffer.byteLength/65536;let e=Math.floor((t[0]+A)/65536)+1;e>I&&(e=I),i.grow(e-g)}return g}function C(A){const I=e(A.byteLength);return Q(I,A),I}function n(A,I){const t=new Uint8Array(i.buffer);return new Uint8Array(t.buffer,t.byteOffset+A,I)}function Q(A,I){new Uint8Array(i.buffer).set(new Uint8Array(I),A)}function B(A){if("INIT"==A[0].cmd)return g(A[0]);const I={vars:[],out:[]},B=new Uint32Array(i.buffer,0,1)[0];for(let i=0;i<A.length;i++)switch(A[i].cmd){case"ALLOCSET":I.vars[A[i].var]=C(A[i].buff);break;case"ALLOC":I.vars[A[i].var]=e(A[i].len);break;case"SET":Q(I.vars[A[i].var],A[i].buff);break;case"CALL":{const g=[];for(let t=0;t<A[i].params.length;t++){const e=A[i].params[t];void 0!==e.var?g.push(I.vars[e.var]+(e.offset||0)):void 0!==e.val&&g.push(e.val)}t.exports[A[i].fnName](...g);break}case"GET":I.out[A[i].out]=n(I.vars[A[i].var],A[i].len).slice();break;default:throw new Error("Invalid cmd")}return new Uint32Array(i.buffer,0,1)[0]=B,I.out}return A&&(A.onmessage=function(I){let t;if(t=I.data?I.data:I,"INIT"==t[0].cmd)g(t[0]).then((function(){A.postMessage(t.result)}));else if("TERMINATE"==t[0].cmd)process.exit();else{const I=B(t);A.postMessage(I)}}),B}var $A={},AI=Worker;class II{constructor(){this.promise=new Promise(((A,I)=>{this.reject=I,this.resolve=A}))}}function tI(A){for(var I=window.atob(A),t=I.length,i=new Uint8Array(t),g=0;g<t;g++)i[g]=I.charCodeAt(g);return i}var iI;const gI="data:application/javascript;base64,"+(iI="("+_A.toString()+")(self)",window.btoa(iI));class eI{constructor(){this.actionQueue=[],this.oldPFree=0}startSyncOp(){if(0!=this.oldPFree)throw new Error("Sync operation in progress");this.oldPFree=this.u32[0]}endSyncOp(){if(0==this.oldPFree)throw new Error("No sync operation in progress");this.u32[0]=this.oldPFree,this.oldPFree=0}postAction(A,I,t,i){if(this.working[A])throw new Error("Posting a job t a working worker");return this.working[A]=!0,this.pendingDeferreds[A]=i||new II,this.workers[A].postMessage(I,t),this.pendingDeferreds[A].promise}processWorks(){for(let A=0;A<this.workers.length&&this.actionQueue.length>0;A++)if(0==this.working[A]){const I=this.actionQueue.shift();this.postAction(A,I.data,I.transfers,I.deferred)}}queueAction(A,I){const t=new II;if(this.singleThread){const I=this.taskManager(A);t.resolve(I)}else this.actionQueue.push({data:A,transfers:I,deferred:t}),this.processWorks();return t.promise}resetMemory(){this.u32[0]=this.initalPFree}allocBuff(A){const I=this.alloc(A.byteLength);return this.setBuff(I,A),I}getBuff(A,I){return this.u8.slice(A,A+I)}setBuff(A,I){this.u8.set(new Uint8Array(I),A)}alloc(A){for(;3&this.u32[0];)this.u32[0]++;const I=this.u32[0];return this.u32[0]+=A,I}async terminate(){for(let A=0;A<this.workers.length;A++)this.workers[A].postMessage([{cmd:"TERMINATE"}]);var A;await(A=200,new Promise((I=>setTimeout(I,A))))}}function CI(A,I){const t=A[I],i=A.Fr,g=A.tm;A[I].batchApplyKey=async function(A,e,C,n,Q){let B,r,o,E,a;if(n=n||"affine",Q=Q||"affine","G1"==I)"jacobian"==n?(o=3*t.F.n8,B="g1m_batchApplyKey"):(o=2*t.F.n8,B="g1m_batchApplyKeyMixed"),E=3*t.F.n8,"jacobian"==Q?a=3*t.F.n8:(r="g1m_batchToAffine",a=2*t.F.n8);else if("G2"==I)"jacobian"==n?(o=3*t.F.n8,B="g2m_batchApplyKey"):(o=2*t.F.n8,B="g2m_batchApplyKeyMixed"),E=3*t.F.n8,"jacobian"==Q?a=3*t.F.n8:(r="g2m_batchToAffine",a=2*t.F.n8);else{if("Fr"!=I)throw new Error("Invalid group: "+I);B="frm_batchApplyKey",o=t.n8,E=t.n8,a=t.n8}const s=Math.floor(A.byteLength/o),h=Math.floor(s/g.concurrency),f=[];C=i.e(C);let w=i.e(e);for(let I=0;I<g.concurrency;I++){let t;if(t=I<g.concurrency-1?h:s-I*h,0==t)continue;const e=[];e.push({cmd:"ALLOCSET",var:0,buff:A.slice(I*h*o,I*h*o+t*o)}),e.push({cmd:"ALLOCSET",var:1,buff:w}),e.push({cmd:"ALLOCSET",var:2,buff:C}),e.push({cmd:"ALLOC",var:3,len:t*Math.max(E,a)}),e.push({cmd:"CALL",fnName:B,params:[{var:0},{val:t},{var:1},{var:2},{var:3}]}),r&&e.push({cmd:"CALL",fnName:r,params:[{var:3},{val:t},{var:3}]}),e.push({cmd:"GET",out:0,var:3,len:t*a}),f.push(g.queueAction(e)),w=i.mul(w,i.exp(C,t))}const D=await Promise.all(f);let c;c=A instanceof VA?new VA(s*a):new Uint8Array(s*a);let u=0;for(let A=0;A<D.length;A++)c.set(D[A][0],u),u+=D[A][0].byteLength;return c}}const nI=[1,1,1,1,2,3,4,5,6,7,7,8,9,10,11,12,13,13,14,15,16,16,17,17,17,17,17,17,17,17,17,17];function QI(A,I){const t=A[I],i=t.tm;async function g(A,i,g,e,C){if(!(A instanceof Uint8Array))throw e&&e.error(`${C} _multiExpChunk buffBases is not Uint8Array`),new Error(`${C} _multiExpChunk buffBases is not Uint8Array`);if(!(i instanceof Uint8Array))throw e&&e.error(`${C} _multiExpChunk buffScalars is not Uint8Array`),new Error(`${C} _multiExpChunk buffScalars is not Uint8Array`);let n,Q;if(g=g||"affine","G1"==I)"affine"==g?(Q="g1m_multiexpAffine_chunk",n=2*t.F.n8):(Q="g1m_multiexp_chunk",n=3*t.F.n8);else{if("G2"!=I)throw new Error("Invalid group");"affine"==g?(Q="g2m_multiexpAffine_chunk",n=2*t.F.n8):(Q="g2m_multiexp_chunk",n=3*t.F.n8)}const B=Math.floor(A.byteLength/n);if(0==B)return t.zero;const r=Math.floor(i.byteLength/B);if(r*B!=i.byteLength)throw new Error("Scalar size does not match");const o=nI[SA(B)],E=Math.floor((8*r-1)/o)+1,a=[];for(let I=0;I<E;I++){const g=[{cmd:"ALLOCSET",var:0,buff:A},{cmd:"ALLOCSET",var:1,buff:i},{cmd:"ALLOC",var:2,len:3*t.F.n8},{cmd:"CALL",fnName:Q,params:[{var:0},{var:1},{val:r},{val:B},{val:I*o},{val:Math.min(8*r-I*o,o)},{var:2}]},{cmd:"GET",out:0,var:2,len:3*t.F.n8}];a.push(t.tm.queueAction(g))}const s=await Promise.all(a);let h=t.zero;for(let A=s.length-1;A>=0;A--){if(!t.isZero(h))for(let A=0;A<o;A++)h=t.double(h);h=t.add(h,s[A][0])}return h}async function e(A,e,C,n,Q){const B=1<<22;let r;if("G1"==I)r="affine"==C?2*t.F.n8:3*t.F.n8;else{if("G2"!=I)throw new Error("Invalid group");r="affine"==C?2*t.F.n8:3*t.F.n8}const o=Math.floor(A.byteLength/r),E=Math.floor(e.byteLength/o);if(E*o!=e.byteLength)throw new Error("Scalar size does not match");const a=nI[SA(o)],s=Math.floor((8*E-1)/a)+1;let h;h=Math.floor(o/(i.concurrency/s)),h>B&&(h=B),h<1024&&(h=1024);const f=[];for(let I=0;I<o;I+=h){n&&n.debug(`Multiexp start: ${Q}: ${I}/${o}`);const t=Math.min(o-I,h),i=A.slice(I*r,(I+t)*r),B=e.slice(I*E,(I+t)*E);f.push(g(i,B,C,n,Q).then((A=>(n&&n.debug(`Multiexp end: ${Q}: ${I}/${o}`),A))))}const w=await Promise.all(f);let D=t.zero;for(let A=w.length-1;A>=0;A--)D=t.add(D,w[A]);return D}t.multiExp=async function(A,I,t,i){return await e(A,I,"jacobian",t,i)},t.multiExpAffine=async function(A,I,t,i){return await e(A,I,"affine",t,i)}}function BI(A,I){const t=A[I],i=A.Fr,g=t.tm;async function e(n,Q,B,r,o,E){B=B||"affine",r=r||"affine";let a,s,h,f,w,D,c,u;"G1"==I?("affine"==B?(a=2*t.F.n8,f="g1m_batchToJacobian"):a=3*t.F.n8,s=3*t.F.n8,Q&&(u="g1m_fftFinal"),c="g1m_fftJoin",D="g1m_fftMix","affine"==r?(h=2*t.F.n8,w="g1m_batchToAffine"):h=3*t.F.n8):"G2"==I?("affine"==B?(a=2*t.F.n8,f="g2m_batchToJacobian"):a=3*t.F.n8,s=3*t.F.n8,Q&&(u="g2m_fftFinal"),c="g2m_fftJoin",D="g2m_fftMix","affine"==r?(h=2*t.F.n8,w="g2m_batchToAffine"):h=3*t.F.n8):"Fr"==I&&(a=t.n8,s=t.n8,h=t.n8,Q&&(u="frm_fftFinal"),D="frm_fftMix",c="frm_fftJoin");let l=!1;Array.isArray(n)?(n=A.array2buffer(n,a),l=!0):n=n.slice(0,n.byteLength);const y=n.byteLength/a,p=SA(y);if(1<<p!=y)throw new Error("fft must be multiple of 2");if(p==i.s+1){let I;return I=Q?await async function(A,I,t,g,n){let Q,B;Q=A.slice(0,A.byteLength/2),B=A.slice(A.byteLength/2,A.byteLength);const r=[];r.push(e(Q,!0,I,"jacobian",g,n)),r.push(e(B,!0,I,"jacobian",g,n)),[Q,B]=await Promise.all(r);const o=await C(Q,B,"fftJoinExtInv",i.one,i.shiftInv,"jacobian",t,g,n);let E;E=o[0].byteLength>1<<28?new VA(2*o[0].byteLength):new Uint8Array(2*o[0].byteLength);return E.set(o[0]),E.set(o[1],o[0].byteLength),E}(n,B,r,o,E):await async function(A,I,t,g,n){let Q,B;Q=A.slice(0,A.byteLength/2),B=A.slice(A.byteLength/2,A.byteLength);const r=[];[Q,B]=await C(Q,B,"fftJoinExt",i.one,i.shift,I,"jacobian",g,n),r.push(e(Q,!1,"jacobian",t,g,n)),r.push(e(B,!1,"jacobian",t,g,n));const o=await Promise.all(r);let E;E=o[0].byteLength>1<<28?new VA(2*o[0].byteLength):new Uint8Array(2*o[0].byteLength);return E.set(o[0]),E.set(o[1],o[0].byteLength),E}(n,B,r,o,E),l?A.buffer2array(I,h):I}let F,M,m;Q&&(F=i.inv(i.e(y))),vA(n,a);let d=Math.min(16384,y),G=y/d;for(;G<g.concurrency&&d>=16;)G*=2,d/=2;const H=SA(d),U=[];for(let A=0;A<G;A++){o&&o.debug(`${E}: fft ${p} mix start: ${A}/${G}`);const I=[];I.push({cmd:"ALLOC",var:0,len:s*d});const t=n.slice(d*A*a,d*(A+1)*a);I.push({cmd:"SET",var:0,buff:t}),f&&I.push({cmd:"CALL",fnName:f,params:[{var:0},{val:d},{var:0}]});for(let A=1;A<=H;A++)I.push({cmd:"CALL",fnName:D,params:[{var:0},{val:d},{val:A}]});H==p?(u&&(I.push({cmd:"ALLOCSET",var:1,buff:F}),I.push({cmd:"CALL",fnName:u,params:[{var:0},{val:d},{var:1}]})),w&&I.push({cmd:"CALL",fnName:w,params:[{var:0},{val:d},{var:0}]}),I.push({cmd:"GET",out:0,var:0,len:d*h})):I.push({cmd:"GET",out:0,var:0,len:s*d}),U.push(g.queueAction(I).then((I=>(o&&o.debug(`${E}: fft ${p} mix end: ${A}/${G}`),I))))}m=await Promise.all(U);for(let A=0;A<G;A++)m[A]=m[A][0];for(let A=H+1;A<=p;A++){o&&o.debug(`${E}: fft ${p} join: ${A}/${p}`);const I=1<<p-A,t=G/I,e=[];for(let C=0;C<I;C++)for(let n=0;n<t/2;n++){const Q=i.exp(i.w[A],n*d),B=i.w[A],r=C*t+n,a=C*t+n+t/2,f=[];f.push({cmd:"ALLOCSET",var:0,buff:m[r]}),f.push({cmd:"ALLOCSET",var:1,buff:m[a]}),f.push({cmd:"ALLOCSET",var:2,buff:Q}),f.push({cmd:"ALLOCSET",var:3,buff:B}),f.push({cmd:"CALL",fnName:c,params:[{var:0},{var:1},{val:d},{var:2},{var:3}]}),A==p?(u&&(f.push({cmd:"ALLOCSET",var:4,buff:F}),f.push({cmd:"CALL",fnName:u,params:[{var:0},{val:d},{var:4}]}),f.push({cmd:"CALL",fnName:u,params:[{var:1},{val:d},{var:4}]})),w&&(f.push({cmd:"CALL",fnName:w,params:[{var:0},{val:d},{var:0}]}),f.push({cmd:"CALL",fnName:w,params:[{var:1},{val:d},{var:1}]})),f.push({cmd:"GET",out:0,var:0,len:d*h}),f.push({cmd:"GET",out:1,var:1,len:d*h})):(f.push({cmd:"GET",out:0,var:0,len:d*s}),f.push({cmd:"GET",out:1,var:1,len:d*s})),e.push(g.queueAction(f).then((i=>(o&&o.debug(`${E}: fft ${p} join ${A}/${p} ${C+1}/${I} ${n}/${t/2}`),i))))}const C=await Promise.all(e);for(let A=0;A<I;A++)for(let I=0;I<t/2;I++){const i=A*t+I,g=A*t+I+t/2,e=C.shift();m[i]=e[0],m[g]=e[1]}}if(M=n instanceof VA?new VA(y*h):new Uint8Array(y*h),Q){M.set(m[0].slice((d-1)*h));let A=h;for(let I=G-1;I>0;I--)M.set(m[I],A),A+=d*h,delete m[I];M.set(m[0].slice(0,(d-1)*h),A),delete m[0]}else for(let A=0;A<G;A++)M.set(m[A],d*h*A),delete m[A];return l?A.buffer2array(M,h):M}async function C(A,e,C,n,Q,B,r,o,E){let a,s,h,f,w,D;if("G1"==I)"affine"==B?(w=2*t.F.n8,s="g1m_batchToJacobian"):w=3*t.F.n8,D=3*t.F.n8,a="g1m_"+C,"affine"==r?(h="g1m_batchToAffine",f=2*t.F.n8):f=3*t.F.n8;else if("G2"==I)"affine"==B?(w=2*t.F.n8,s="g2m_batchToJacobian"):w=3*t.F.n8,a="g2m_"+C,D=3*t.F.n8,"affine"==r?(h="g2m_batchToAffine",f=2*t.F.n8):f=3*t.F.n8;else{if("Fr"!=I)throw new Error("Invalid group");w=i.n8,f=i.n8,D=i.n8,a="frm_"+C}if(A.byteLength!=e.byteLength)throw new Error("Invalid buffer size");const c=Math.floor(A.byteLength/w);if(c!=1<<SA(c))throw new Error("Invalid number of points");let u=Math.floor(c/g.concurrency);u<16&&(u=16),u>65536&&(u=65536);const l=[];for(let I=0;I<c;I+=u){o&&o.debug(`${E}: fftJoinExt Start: ${I}/${c}`);const t=Math.min(c-I,u),C=i.mul(n,i.exp(Q,I)),B=[],r=A.slice(I*w,(I+t)*w),y=e.slice(I*w,(I+t)*w);B.push({cmd:"ALLOC",var:0,len:D*t}),B.push({cmd:"SET",var:0,buff:r}),B.push({cmd:"ALLOC",var:1,len:D*t}),B.push({cmd:"SET",var:1,buff:y}),B.push({cmd:"ALLOCSET",var:2,buff:C}),B.push({cmd:"ALLOCSET",var:3,buff:Q}),s&&(B.push({cmd:"CALL",fnName:s,params:[{var:0},{val:t},{var:0}]}),B.push({cmd:"CALL",fnName:s,params:[{var:1},{val:t},{var:1}]})),B.push({cmd:"CALL",fnName:a,params:[{var:0},{var:1},{val:t},{var:2},{var:3},{val:i.s}]}),h&&(B.push({cmd:"CALL",fnName:h,params:[{var:0},{val:t},{var:0}]}),B.push({cmd:"CALL",fnName:h,params:[{var:1},{val:t},{var:1}]})),B.push({cmd:"GET",out:0,var:0,len:t*f}),B.push({cmd:"GET",out:1,var:1,len:t*f}),l.push(g.queueAction(B).then((A=>(o&&o.debug(`${E}: fftJoinExt End: ${I}/${c}`),A))))}const y=await Promise.all(l);let p,F;c*f>1<<28?(p=new VA(c*f),F=new VA(c*f)):(p=new Uint8Array(c*f),F=new Uint8Array(c*f));let M=0;for(let A=0;A<y.length;A++)p.set(y[A][0],M),F.set(y[A][1],M),M+=y[A][0].byteLength;return[p,F]}t.fft=async function(A,I,t,i,g){return await e(A,!1,I,t,i,g)},t.ifft=async function(A,I,t,i,g){return await e(A,!0,I,t,i,g)},t.lagrangeEvaluations=async function(A,g,n,Q,B){let r;if(g=g||"affine",n=n||"affine","G1"==I)r="affine"==g?2*t.F.n8:3*t.F.n8;else if("G2"==I)r="affine"==g?2*t.F.n8:3*t.F.n8;else{if("Fr"!=I)throw new Error("Invalid group");r=i.n8}const o=A.byteLength/r,E=SA(o);if(2**E*r!=A.byteLength)throw Q&&Q.error("lagrangeEvaluations iinvalid input size"),new Error("lagrangeEvaluations invalid Input size");if(E<=i.s)return await t.ifft(A,g,n,Q,B);if(E>i.s+1)throw Q&&Q.error("lagrangeEvaluations input too big"),new Error("lagrangeEvaluations input too big");let a=A.slice(0,A.byteLength/2),s=A.slice(A.byteLength/2,A.byteLength);const h=i.exp(i.shift,o/2),f=i.inv(i.sub(i.one,h));[a,s]=await C(a,s,"prepareLagrangeEvaluation",f,i.shiftInv,g,"jacobian",Q,B+" prep");const w=[];let D;return w.push(e(a,!0,"jacobian",n,Q,B+" t0")),w.push(e(s,!0,"jacobian",n,Q,B+" t1")),[a,s]=await Promise.all(w),D=a.byteLength>1<<28?new VA(2*a.byteLength):new Uint8Array(2*a.byteLength),D.set(a),D.set(s,a.byteLength),D},t.fftMix=async function(A){const e=3*t.F.n8;let C,n;if("G1"==I)C="g1m_fftMix",n="g1m_fftJoin";else if("G2"==I)C="g2m_fftMix",n="g2m_fftJoin";else{if("Fr"!=I)throw new Error("Invalid group");C="frm_fftMix",n="frm_fftJoin"}const Q=Math.floor(A.byteLength/e),B=SA(Q);let r=1<<SA(g.concurrency);Q<=2*r&&(r=1);const o=Q/r,E=SA(o),a=[];for(let I=0;I<r;I++){const t=[],i=A.slice(I*o*e,(I+1)*o*e);t.push({cmd:"ALLOCSET",var:0,buff:i});for(let A=1;A<=E;A++)t.push({cmd:"CALL",fnName:C,params:[{var:0},{val:o},{val:A}]});t.push({cmd:"GET",out:0,var:0,len:o*e}),a.push(g.queueAction(t))}const s=await Promise.all(a),h=[];for(let A=0;A<s.length;A++)h[A]=s[A][0];for(let A=E+1;A<=B;A++){const I=1<<B-A,t=r/I,C=[];for(let Q=0;Q<I;Q++)for(let I=0;I<t/2;I++){const B=i.exp(i.w[A],I*o),r=i.w[A],E=Q*t+I,a=Q*t+I+t/2,s=[];s.push({cmd:"ALLOCSET",var:0,buff:h[E]}),s.push({cmd:"ALLOCSET",var:1,buff:h[a]}),s.push({cmd:"ALLOCSET",var:2,buff:B}),s.push({cmd:"ALLOCSET",var:3,buff:r}),s.push({cmd:"CALL",fnName:n,params:[{var:0},{var:1},{val:o},{var:2},{var:3}]}),s.push({cmd:"GET",out:0,var:0,len:o*e}),s.push({cmd:"GET",out:1,var:1,len:o*e}),C.push(g.queueAction(s))}const Q=await Promise.all(C);for(let A=0;A<I;A++)for(let I=0;I<t/2;I++){const i=A*t+I,g=A*t+I+t/2,e=Q.shift();h[i]=e[0],h[g]=e[1]}}let f;f=A instanceof VA?new VA(Q*e):new Uint8Array(Q*e);let w=0;for(let A=0;A<r;A++)f.set(h[A],w),w+=h[A].byteLength;return f},t.fftJoin=async function(A,e,C,n){const Q=3*t.F.n8;let B;if("G1"==I)B="g1m_fftJoin";else if("G2"==I)B="g2m_fftJoin";else{if("Fr"!=I)throw new Error("Invalid group");B="frm_fftJoin"}if(A.byteLength!=e.byteLength)throw new Error("Invalid buffer size");const r=Math.floor(A.byteLength/Q);if(r!=1<<SA(r))throw new Error("Invalid number of points");let o=1<<SA(g.concurrency);r<=2*o&&(o=1);const E=r/o,a=[];for(let I=0;I<o;I++){const t=[],r=i.mul(C,i.exp(n,I*E)),o=A.slice(I*E*Q,(I+1)*E*Q),s=e.slice(I*E*Q,(I+1)*E*Q);t.push({cmd:"ALLOCSET",var:0,buff:o}),t.push({cmd:"ALLOCSET",var:1,buff:s}),t.push({cmd:"ALLOCSET",var:2,buff:r}),t.push({cmd:"ALLOCSET",var:3,buff:n}),t.push({cmd:"CALL",fnName:B,params:[{var:0},{var:1},{val:E},{var:2},{var:3}]}),t.push({cmd:"GET",out:0,var:0,len:E*Q}),t.push({cmd:"GET",out:1,var:1,len:E*Q}),a.push(g.queueAction(t))}const s=await Promise.all(a);let h,f;A instanceof VA?(h=new VA(r*Q),f=new VA(r*Q)):(h=new Uint8Array(r*Q),f=new Uint8Array(r*Q));let w=0;for(let A=0;A<s.length;A++)h.set(s[A][0],w),f.set(s[A][1],w),w+=s[A][0].byteLength;return[h,f]},t.fftFinal=async function(A,i){const e=3*t.F.n8,C=2*t.F.n8;let n,Q;if("G1"==I)n="g1m_fftFinal",Q="g1m_batchToAffine";else{if("G2"!=I)throw new Error("Invalid group");n="g2m_fftFinal",Q="g2m_batchToAffine"}const B=Math.floor(A.byteLength/e);if(B!=1<<SA(B))throw new Error("Invalid number of points");const r=Math.floor(B/g.concurrency),o=[];for(let I=0;I<g.concurrency;I++){let t;if(t=I<g.concurrency-1?r:B-I*r,0==t)continue;const E=[],a=A.slice(I*r*e,(I*r+t)*e);E.push({cmd:"ALLOCSET",var:0,buff:a}),E.push({cmd:"ALLOCSET",var:1,buff:i}),E.push({cmd:"CALL",fnName:n,params:[{var:0},{val:t},{var:1}]}),E.push({cmd:"CALL",fnName:Q,params:[{var:0},{val:t},{var:0}]}),E.push({cmd:"GET",out:0,var:0,len:t*C}),o.push(g.queueAction(E))}const E=await Promise.all(o);let a;a=A instanceof VA?new VA(B*C):new Uint8Array(B*C);let s=0;for(let A=E.length-1;A>=0;A--)a.set(E[A][0],s),s+=E[A][0].byteLength;return a}}async function rI(A){const I=await async function(A,I){const t=new eI;t.memory=new WebAssembly.Memory({initial:25}),t.u8=new Uint8Array(t.memory.buffer),t.u32=new Uint32Array(t.memory.buffer);const i=await WebAssembly.compile(tI(A.code));if(t.instance=await WebAssembly.instantiate(i,{env:{memory:t.memory}}),t.singleThread=I,t.initalPFree=t.u32[0],t.pq=A.pq,t.pr=A.pr,t.pG1gen=A.pG1gen,t.pG1zero=A.pG1zero,t.pG2gen=A.pG2gen,t.pG2zero=A.pG2zero,t.pOneT=A.pOneT,I)t.code=tI(A.code),t.taskManager=_A(),await t.taskManager([{cmd:"INIT",init:25,code:t.code.slice()}]),t.concurrency=1;else{let I;t.workers=[],t.pendingDeferreds=[],t.working=[],I="object"==typeof navigator&&navigator.hardwareConcurrency?navigator.hardwareConcurrency:$A.cpus().length,I>64&&(I=64),t.concurrency=I;for(let A=0;A<I;A++)t.workers[A]=new AI(gI),t.workers[A].addEventListener("message",g(A)),t.working[A]=!1;const i=[];for(let I=0;I<t.workers.length;I++){const g=tI(A.code).slice();i.push(t.postAction(I,[{cmd:"INIT",init:25,code:g}],[g.buffer]))}await Promise.all(i)}return t;function g(A){return function(I){let i;i=I&&I.data?I.data:I,t.working[A]=!1,t.pendingDeferreds[A].resolve(i),t.processWorks()}}}(A.wasm,A.singleThread),t={};return t.q=U(A.wasm.q),t.r=U(A.wasm.r),t.name=A.name,t.tm=I,t.prePSize=A.wasm.prePSize,t.preQSize=A.wasm.preQSize,t.Fr=new jA(I,"frm",A.n8r,A.r),t.F1=new jA(I,"f1m",A.n8q,A.q),t.F2=new zA(I,"f2m",t.F1),t.G1=new TA(I,"g1m",t.F1,A.wasm.pG1gen,A.wasm.pG1b,A.cofactorG1),t.G2=new TA(I,"g2m",t.F2,A.wasm.pG2gen,A.wasm.pG2b,A.cofactorG2),t.F6=new WA(I,"f6m",t.F2),t.F12=new zA(I,"ftm",t.F6),t.Gt=t.F12,CI(t,"G1"),CI(t,"G2"),CI(t,"Fr"),QI(t,"G1"),QI(t,"G2"),BI(t,"G1"),BI(t,"G2"),BI(t,"Fr"),function(A){const I=A.tm;A.pairing=function(t,i){I.startSyncOp();const g=I.allocBuff(A.G1.toJacobian(t)),e=I.allocBuff(A.G2.toJacobian(i)),C=I.alloc(A.Gt.n8);I.instance.exports[A.name+"_pairing"](g,e,C);const n=I.getBuff(C,A.Gt.n8);return I.endSyncOp(),n},A.pairingEq=async function(){let t,i;arguments.length%2==1?(t=arguments[arguments.length-1],i=(arguments.length-1)/2):(t=A.Gt.one,i=arguments.length/2);const g=[];for(let t=0;t<i;t++){const i=[],e=A.G1.toJacobian(arguments[2*t]);i.push({cmd:"ALLOCSET",var:0,buff:e}),i.push({cmd:"ALLOC",var:1,len:A.prePSize});const C=A.G2.toJacobian(arguments[2*t+1]);i.push({cmd:"ALLOCSET",var:2,buff:C}),i.push({cmd:"ALLOC",var:3,len:A.preQSize}),i.push({cmd:"ALLOC",var:4,len:A.Gt.n8}),i.push({cmd:"CALL",fnName:A.name+"_prepareG1",params:[{var:0},{var:1}]}),i.push({cmd:"CALL",fnName:A.name+"_prepareG2",params:[{var:2},{var:3}]}),i.push({cmd:"CALL",fnName:A.name+"_millerLoop",params:[{var:1},{var:3},{var:4}]}),i.push({cmd:"GET",out:0,var:4,len:A.Gt.n8}),g.push(I.queueAction(i))}const e=await Promise.all(g);I.startSyncOp();const C=I.alloc(A.Gt.n8);I.instance.exports.ftm_one(C);for(let A=0;A<e.length;A++){const t=I.allocBuff(e[A][0]);I.instance.exports.ftm_mul(C,t,C)}I.instance.exports[A.name+"_finalExponentiation"](C,C);const n=I.allocBuff(t),Q=!!I.instance.exports.ftm_eq(C,n);return I.endSyncOp(),Q},A.prepareG1=function(A){this.tm.startSyncOp();const I=this.tm.allocBuff(A),t=this.tm.alloc(this.prePSize);this.tm.instance.exports[this.name+"_prepareG1"](I,t);const i=this.tm.getBuff(t,this.prePSize);return this.tm.endSyncOp(),i},A.prepareG2=function(A){this.tm.startSyncOp();const I=this.tm.allocBuff(A),t=this.tm.alloc(this.preQSize);this.tm.instance.exports[this.name+"_prepareG2"](I,t);const i=this.tm.getBuff(t,this.preQSize);return this.tm.endSyncOp(),i},A.millerLoop=function(A,I){this.tm.startSyncOp();const t=this.tm.allocBuff(A),i=this.tm.allocBuff(I),g=this.tm.alloc(this.Gt.n8);this.tm.instance.exports[this.name+"_millerLoop"](t,i,g);const e=this.tm.getBuff(g,this.Gt.n8);return this.tm.endSyncOp(),e},A.finalExponentiation=function(A){this.tm.startSyncOp();const I=this.tm.allocBuff(A),t=this.tm.alloc(this.Gt.n8);this.tm.instance.exports[this.name+"_finalExponentiation"](I,t);const i=this.tm.getBuff(t,this.Gt.n8);return this.tm.endSyncOp(),i}}(t),t.array2buffer=function(A,I){const t=new Uint8Array(I*A.length);for(let i=0;i<A.length;i++)t.set(A[i],i*I);return t},t.buffer2array=function(A,I){const t=A.byteLength/I,i=new Array(t);for(let g=0;g<t;g++)i[g]=A.slice(g*I,g*I+I);return i},t}async function oI(A){if(!A&&GA.curve_bn128)return GA.curve_bn128;const I={name:"bn128",wasm:HA.bn128_wasm,q:U("21888242871839275222246405745257275088696311157297823662689037894645226208583"),r:U("21888242871839275222246405745257275088548364400416034343698204186575808495617"),n8q:32,n8r:32,cofactorG2:U("30644e72e131a029b85045b68181585e06ceecda572a2489345f2299c0f9fa8d",16),singleThread:!!A},t=await rI(I);return t.terminate=async function(){I.singleThread||(GA.curve_bn128=null,await this.tm.terminate())},A||(GA.curve_bn128=t),t}async function EI(A){if(!A&&GA.curve_bls12381)return GA.curve_bls12381;const I={name:"bls12381",wasm:HA.bls12381_wasm,q:U("1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaaab",16),r:U("73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001",16),n8q:48,n8r:32,cofactorG1:U("0x396c8c005555e1568c00aaab0000aaab",16),cofactorG2:U("0x5d543a95414e7f1091d50792876a202cd91de4547085abaa68a205b2e5a7ddfa628f1cb4d9e82ef21537e293a6691ae1616ec6e786f0c70cf1c38e31c7238e5",16),singleThread:!!A},t=await rI(I);return t.terminate=async function(){I.singleThread||(GA.curve_bls12381=null,await this.tm.terminate())},t}GA.curve_bn128=null,GA.curve_bls12381=null;U("73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001",16),U("21888242871839275222246405745257275088548364400416034343698204186575808495617"),U("1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaaab",16),U("21888242871839275222246405745257275088696311157297823662689037894645226208583");const aI=EA,sI=OA;var hI={};async function fI(A,I,t,i){if(t=t||262144,["w+","wx+","r","ax+","a+"].indexOf(I)<0)throw new Error("Invalid open option");const g=await hI.promises.open(A,I),e=await g.stat();return new wI(g,e,t,i,A)}class wI{constructor(A,I,t,i,g){for(this.fileName=g,this.fd=A,this.pos=0,this.pageSize=i||256;this.pageSize<I.blksize;)this.pageSize*=2;this.totalSize=I.size,this.totalPages=Math.floor((I.size-1)/this.pageSize)+1,this.maxPagesLoaded=Math.floor(t/this.pageSize)+1,this.pages={},this.pendingLoads=[],this.writing=!1,this.reading=!1,this.avBuffs=[],this.history={}}_loadPage(A){const I=this,t=new Promise(((t,i)=>{I.pendingLoads.push({page:A,resolve:t,reject:i})}));return I.__statusPage("After Load request: ",A),t}__statusPage(A,I){const t=[],i=this;if(!i.logHistory)return;t.push("=="+A+" "+I);let g="";for(let A=0;A<i.pendingLoads.length;A++)i.pendingLoads[A].page==I&&(g=g+" "+A);if(g&&t.push("Pending loads:"+g),void 0!==i.pages[I]){const A=i.pages[I];t.push("Loaded"),t.push("pendingOps: "+A.pendingOps),A.loading&&t.push("loading: "+A.loading),A.writing&&t.push("writing"),A.dirty&&t.push("dirty")}t.push("=="),i.history[I]||(i.history[I]=[]),i.history[I].push(t)}__printHistory(A){const I=this;I.history[A]||console.log("Empty History ",A),console.log("History "+A);for(let t=0;t<I.history[A].length;t++)for(let i=0;i<I.history[A][t].length;i++)console.log("-> "+I.history[A][t][i])}_triggerLoad(){const A=this;if(A.reading)return;if(0==A.pendingLoads.length)return;const I=Object.keys(A.pages),t=[];for(let i=0;i<I.length;i++){const g=A.pages[parseInt(I[i])];0!=g.dirty||0!=g.pendingOps||g.writing||g.loading||t.push(parseInt(I[i]))}let i=A.maxPagesLoaded-I.length;const g=[];for(;A.pendingLoads.length>0&&(void 0!==A.pages[A.pendingLoads[0].page]||i>0||t.length>0);){const I=A.pendingLoads.shift();if(void 0!==A.pages[I.page]){A.pages[I.page].pendingOps++;const i=t.indexOf(I.page);i>=0&&t.splice(i,1),A.pages[I.page].loading?A.pages[I.page].loading.push(I):I.resolve(),A.__statusPage("After Load (cached): ",I.page)}else{if(i)i--;else{const I=t.shift();A.__statusPage("Before Unload: ",I),A.avBuffs.unshift(A.pages[I]),delete A.pages[I],A.__statusPage("After Unload: ",I)}I.page>=A.totalPages?(A.pages[I.page]=e(),I.resolve(),A.__statusPage("After Load (new): ",I.page)):(A.reading=!0,A.pages[I.page]=e(),A.pages[I.page].loading=[I],g.push(A.fd.read(A.pages[I.page].buff,0,A.pageSize,I.page*A.pageSize).then((t=>{A.pages[I.page].size=t.bytesRead;const i=A.pages[I.page].loading;delete A.pages[I.page].loading;for(let A=0;A<i.length;A++)i[A].resolve();return A.__statusPage("After Load (loaded): ",I.page),t}),(A=>{I.reject(A)}))),A.__statusPage("After Load (loading): ",I.page))}}function e(){if(A.avBuffs.length>0){const I=A.avBuffs.shift();return I.dirty=!1,I.pendingOps=1,I.size=0,I}return{dirty:!1,buff:new Uint8Array(A.pageSize),pendingOps:1,size:0}}Promise.all(g).then((()=>{A.reading=!1,A.pendingLoads.length>0&&setImmediate(A._triggerLoad.bind(A)),A._tryClose()}))}_triggerWrite(){const A=this;if(A.writing)return;const I=Object.keys(A.pages),t=[];for(let i=0;i<I.length;i++){const g=A.pages[parseInt(I[i])];g.dirty&&(g.dirty=!1,g.writing=!0,A.writing=!0,t.push(A.fd.write(g.buff,0,g.size,parseInt(I[i])*A.pageSize).then((()=>{g.writing=!1}),(I=>{console.log("ERROR Writing: "+I),A.error=I,A._tryClose()}))))}A.writing&&Promise.all(t).then((()=>{A.writing=!1,setImmediate(A._triggerWrite.bind(A)),A._tryClose(),A.pendingLoads.length>0&&setImmediate(A._triggerLoad.bind(A))}))}_getDirtyPage(){for(let A in this.pages)if(this.pages[A].dirty)return A;return-1}async write(A,I){if(0==A.byteLength)return;const t=this;if(void 0===I&&(I=t.pos),t.pos=I+A.byteLength,t.totalSize<I+A.byteLength&&(t.totalSize=I+A.byteLength),t.pendingClose)throw new Error("Writing a closing file");const i=Math.floor(I/t.pageSize),g=Math.floor((I+A.byteLength-1)/t.pageSize),e=[];for(let A=i;A<=g;A++)e.push(t._loadPage(A));t._triggerLoad();let C=i,n=I%t.pageSize,Q=A.byteLength;for(;Q>0;){await e[C-i];const I=n+Q>t.pageSize?t.pageSize-n:Q,g=A.slice(A.byteLength-Q,A.byteLength-Q+I);new Uint8Array(t.pages[C].buff.buffer,n,I).set(g),t.pages[C].dirty=!0,t.pages[C].pendingOps--,t.pages[C].size=Math.max(n+I,t.pages[C].size),C>=t.totalPages&&(t.totalPages=C+1),Q-=I,C++,n=0,t.writing||setImmediate(t._triggerWrite.bind(t))}}async read(A,I){let t=new Uint8Array(A);return await this.readToBuffer(t,0,A,I),t}async readToBuffer(A,I,t,i){if(0==t)return;const g=this;if(t>g.pageSize*g.maxPagesLoaded*.8){const A=Math.floor(1.1*t);this.maxPagesLoaded=Math.floor(A/g.pageSize)+1}if(void 0===i&&(i=g.pos),g.pos=i+t,g.pendingClose)throw new Error("Reading a closing file");const e=Math.floor(i/g.pageSize),C=Math.floor((i+t-1)/g.pageSize),n=[];for(let A=e;A<=C;A++)n.push(g._loadPage(A));g._triggerLoad();let Q=e,B=i%g.pageSize,r=i+t>g.totalSize?t-(i+t-g.totalSize):t;for(;r>0;){await n[Q-e],g.__statusPage("After Await (read): ",Q);const i=B+r>g.pageSize?g.pageSize-B:r,C=new Uint8Array(g.pages[Q].buff.buffer,g.pages[Q].buff.byteOffset+B,i);A.set(C,I+t-r),g.pages[Q].pendingOps--,g.__statusPage("After Op done: ",Q),r-=i,Q++,B=0,g.pendingLoads.length>0&&setImmediate(g._triggerLoad.bind(g))}this.pos=i+t}_tryClose(){const A=this;if(!A.pendingClose)return;A.error&&A.pendingCloseReject(A.error);A._getDirtyPage()>=0||A.writing||A.reading||A.pendingLoads.length>0||A.pendingClose()}close(){const A=this;if(A.pendingClose)throw new Error("Closing the file twice");return new Promise(((I,t)=>{A.pendingClose=I,A.pendingCloseReject=t,A._tryClose()})).then((()=>{A.fd.close()}),(I=>{throw A.fd.close(),I}))}async discard(){await this.close(),await hI.promises.unlink(this.fileName)}async writeULE32(A,I){const t=new Uint8Array(4);new DataView(t.buffer).setUint32(0,A,!0),await this.write(t,I)}async writeUBE32(A,I){const t=new Uint8Array(4);new DataView(t.buffer).setUint32(0,A,!1),await this.write(t,I)}async writeULE64(A,I){const t=new Uint8Array(8),i=new DataView(t.buffer);i.setUint32(0,4294967295&A,!0),i.setUint32(4,Math.floor(A/4294967296),!0),await this.write(t,I)}async readULE32(A){const I=await this.read(4,A);return new Uint32Array(I.buffer)[0]}async readUBE32(A){const I=await this.read(4,A);return new DataView(I.buffer).getUint32(0,!1)}async readULE64(A){const I=await this.read(8,A),t=new Uint32Array(I.buffer);return 4294967296*t[1]+t[0]}}const DI=new Uint8Array(4),cI=new DataView(DI.buffer),uI=new Uint8Array(8),lI=new DataView(uI.buffer);class yI{constructor(){this.pageSize=16384}_resizeIfNeeded(A){if(A>this.allocSize){const I=Math.max(this.allocSize+(1<<20),Math.floor(1.1*this.allocSize),A),t=new Uint8Array(I);t.set(this.o.data),this.o.data=t,this.allocSize=I}}async write(A,I){if(void 0===I&&(I=this.pos),this.readOnly)throw new Error("Writing a read only file");this._resizeIfNeeded(I+A.byteLength),this.o.data.set(A.slice(),I),I+A.byteLength>this.totalSize&&(this.totalSize=I+A.byteLength),this.pos=I+A.byteLength}async readToBuffer(A,I,t,i){if(void 0===i&&(i=this.pos),this.readOnly&&i+t>this.totalSize)throw new Error("Reading out of bounds");this._resizeIfNeeded(i+t);const g=new Uint8Array(this.o.data.buffer,this.o.data.byteOffset+i,t);A.set(g,I),this.pos=i+t}async read(A,I){const t=new Uint8Array(A);return await this.readToBuffer(t,0,A,I),t}close(){this.o.data.byteLength!=this.totalSize&&(this.o.data=this.o.data.slice(0,this.totalSize))}async discard(){}async writeULE32(A,I){cI.setUint32(0,A,!0),await this.write(DI,I)}async writeUBE32(A,I){cI.setUint32(0,A,!1),await this.write(DI,I)}async writeULE64(A,I){lI.setUint32(0,4294967295&A,!0),lI.setUint32(4,Math.floor(A/4294967296),!0),await this.write(uI,I)}async readULE32(A){const I=await this.read(4,A);return new Uint32Array(I.buffer)[0]}async readUBE32(A){const I=await this.read(4,A);return new DataView(I.buffer).getUint32(0,!1)}async readULE64(A){const I=await this.read(8,A),t=new Uint32Array(I.buffer);return 4294967296*t[1]+t[0]}}const pI=1<<22;const FI=new Uint8Array(4),MI=new DataView(FI.buffer),mI=new Uint8Array(8),dI=new DataView(mI.buffer);class GI{constructor(){this.pageSize=16384}_resizeIfNeeded(A){if(A<=this.totalSize)return;if(this.readOnly)throw new Error("Reading out of file bounds");const I=Math.floor((A-1)/pI)+1;for(let t=Math.max(this.o.data.length-1,0);t<I;t++){const i=new Uint8Array(t<I-1?pI:A-(I-1)*pI);t==this.o.data.length-1&&i.set(this.o.data[t]),this.o.data[t]=i}this.totalSize=A}async write(A,I){const t=this;if(void 0===I&&(I=t.pos),this.readOnly)throw new Error("Writing a read only file");this._resizeIfNeeded(I+A.byteLength);let i=Math.floor(I/pI),g=I%pI,e=A.byteLength;for(;e>0;){const I=g+e>pI?pI-g:e,C=A.slice(A.byteLength-e,A.byteLength-e+I);new Uint8Array(t.o.data[i].buffer,g,I).set(C),e-=I,i++,g=0}this.pos=I+A.byteLength}async readToBuffer(A,I,t,i){const g=this;if(void 0===i&&(i=g.pos),this.readOnly&&i+t>this.totalSize)throw new Error("Reading out of bounds");this._resizeIfNeeded(i+t);let e=Math.floor(i/pI),C=i%pI,n=t;for(;n>0;){const i=C+n>pI?pI-C:n,Q=new Uint8Array(g.o.data[e].buffer,C,i);A.set(Q,I+t-n),n-=i,e++,C=0}this.pos=i+t}async read(A,I){const t=new Uint8Array(A);return await this.readToBuffer(t,0,A,I),t}close(){}async discard(){}async writeULE32(A,I){MI.setUint32(0,A,!0),await this.write(FI,I)}async writeUBE32(A,I){MI.setUint32(0,A,!1),await this.write(FI,I)}async writeULE64(A,I){dI.setUint32(0,4294967295&A,!0),dI.setUint32(4,Math.floor(A/4294967296),!0),await this.write(mI,I)}async readULE32(A){const I=await this.read(4,A);return new Uint32Array(I.buffer)[0]}async readUBE32(A){const I=await this.read(4,A);return new DataView(I.buffer).getUint32(0,!1)}async readULE64(A){const I=await this.read(8,A),t=new Uint32Array(I.buffer);return 4294967296*t[1]+t[0]}}async function HI(A,I,t){if("string"==typeof A&&(A={type:"file",fileName:A,cacheSize:I||65536,pageSize:t||8192}),"file"==A.type)return await fI(A.fileName,"w+",A.cacheSize,A.pageSize);if("mem"==A.type)return function(A){const I=A.initialSize||1<<20,t=new yI;return t.o=A,t.o.data=new Uint8Array(I),t.allocSize=I,t.totalSize=0,t.readOnly=!1,t.pos=0,t}(A);if("bigMem"==A.type)return function(A){const I=A.initialSize||0,t=new GI;t.o=A;const i=I?Math.floor((I-1)/pI)+1:0;t.o.data=[];for(let A=0;A<i-1;A++)t.o.data.push(new Uint8Array(pI));return i&&t.o.data.push(new Uint8Array(I-pI*(i-1))),t.totalSize=0,t.readOnly=!1,t.pos=0,t}(A);throw new Error("Invalid FastFile type: "+A.type)}async function UI(A,I,t){if(A instanceof Uint8Array&&(A={type:"mem",data:A}),"string"==typeof A){A={type:"mem",data:await fetch(A).then((function(A){return A.arrayBuffer()})).then((function(A){return new Uint8Array(A)}))}}if("file"==A.type)return await fI(A.fileName,"r",A.cacheSize,A.pageSize);if("mem"==A.type)return await function(A){const I=new yI;return I.o=A,I.allocSize=A.data.byteLength,I.totalSize=A.data.byteLength,I.readOnly=!0,I.pos=0,I}(A);if("bigMem"==A.type)return await function(A){const I=new GI;return I.o=A,I.totalSize=(A.data.length-1)*pI+A.data[A.data.length-1].byteLength,I.readOnly=!0,I.pos=0,I}(A);throw new Error("Invalid FastFile type: "+A.type)}async function bI(A,I,t,i,g){const e=await UI(A),C=await e.read(4);let n="";for(let A=0;A<4;A++)n+=String.fromCharCode(C[A]);if(n!=I)throw new Error(A+": Invalid File format");if(await e.readULE32()>t)throw new Error("Version not supported");const Q=await e.readULE32();let B=[];for(let A=0;A<Q;A++){let A=await e.readULE32(),I=await e.readULE64();void 0===B[A]&&(B[A]=[]),B[A].push({p:e.pos,size:I}),e.pos+=I}return{fd:e,sections:B}}async function LI(A,I,t,i,g,e){const C=await HI(A,g,e),n=new Uint8Array(4);for(let A=0;A<4;A++)n[A]=I.charCodeAt(A);return await C.write(n,0),await C.writeULE32(t),await C.writeULE32(i),C}async function kI(A,I){if(void 0!==A.writingSection)throw new Error("Already writing a section");await A.writeULE32(I),A.writingSection={pSectionSize:A.pos},await A.writeULE64(0)}async function NI(A){if(void 0===A.writingSection)throw new Error("Not writing a section");const I=A.pos-A.writingSection.pSectionSize-8,t=A.pos;A.pos=A.writingSection.pSectionSize,await A.writeULE64(I),A.pos=t,delete A.writingSection}async function JI(A,I,t){if(void 0!==A.readingSection)throw new Error("Already reading a section");if(!I[t])throw new Error(A.fileName+": Missing section "+t);if(I[t].length>1)throw new Error(A.fileName+": Section Duplicated "+t);A.pos=I[t][0].p,A.readingSection=I[t][0]}async function SI(A,I){if(void 0===A.readingSection)throw new Error("Not reading a section");if(!I&&A.pos-A.readingSection.p!=A.readingSection.size)throw new Error("Invalid section size reading");delete A.readingSection}async function vI(A,I,t,i){const g=new Uint8Array(t);aI.toRprLE(g,0,I,t),await A.write(g,i)}async function RI(A,I,t){const i=await A.read(I,t);return aI.fromRprLE(i,0,I)}async function YI(A,I,t,i,g){void 0===g&&(g=I[i][0].size);const e=A.pageSize;await JI(A,I,i),await kI(t,i);for(let I=0;I<g;I+=e){const i=Math.min(g-I,e),C=await A.read(i);await t.write(C)}await NI(t),await SI(A,g!=I[i][0].size)}async function qI(A,I,t,i,g){if((i=void 0===i?0:i)+(g=void 0===g?I[t][0].size-i:g)>I[t][0].size)throw new Error("Reading out of the range of the section");let e;return e=g<1<<30?new Uint8Array(g):new VA(g),await A.readToBuffer(e,0,g,I[t][0].p+i),e}async function xI(A,I,t,i,g){const e=16*A.pageSize;if(await JI(A,I,g),await JI(t,i,g),I[g][0].size!=i[g][0].size)return!1;const C=I[g][0].size;for(let I=0;I<C;I+=e){const i=Math.min(C-I,e),g=await A.read(i),n=await t.read(i);for(let A=0;A<i;A++)if(g[A]!=n[A])return!1}return await SI(A),await SI(t),!0}aI.e("73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001",16),aI.e("21888242871839275222246405745257275088548364400416034343698204186575808495617");const PI=aI.e("1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaaab",16),XI=aI.e("21888242871839275222246405745257275088696311157297823662689037894645226208583");async function OI(A){let I;if(aI.eq(A,XI))I=await oI();else{if(!aI.eq(A,PI))throw new Error(`Curve not supported: ${aI.toString(A)}`);I=await EI()}return I}async function ZI(A){let I;const t=A.toUpperCase().match(/[A-Za-z0-9]+/g).join("");if(["BN128","BN254","ALTBN128"].indexOf(t)>=0)I=await oI();else{if(!(["BLS12381"].indexOf(t)>=0))throw new Error(`Curve not supported: ${A}`);I=await EI()}return I}KI.notEqual=function(A,I,t){KI(A!=I,t)},KI.notOk=function(A,I){KI(!A,I)},KI.equal=function(A,I,t){KI(A==I,t)},KI.ok=KI;var VI=KI;function KI(A,I){if(!A)throw new Error(I||"AssertionError")}var jI=zI;function zI(A){if(!zI.supported)return null;var I,t=A&&A.imports,i=(I="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","function"==typeof atob?new Uint8Array(atob(I).split("").map(WI)):function(A){throw new Error('Could not dynamically require "'+A+'". Please configure the dynamicRequireTargets option of @rollup/plugin-commonjs appropriately for this require call to behave properly.')}("buffer").Buffer.from(I,"base64")),g=null,e={buffer:i,memory:null,exports:null,realloc:function(A){e.exports.memory.grow(Math.max(0,Math.ceil(Math.abs(A-e.memory.length)/65536))),e.memory=new Uint8Array(e.exports.memory.buffer)},onload:C};return C((function(){})),e;function C(I){if(e.exports)return I();if(g)g.then(I.bind(null,null)).catch(I);else{try{if(A&&A.async)throw new Error("async");n({instance:new WebAssembly.Instance(new WebAssembly.Module(i),t)})}catch(A){g=WebAssembly.instantiate(i,t).then(n)}C(I)}}function n(A){e.exports=A.instance.exports,e.memory=e.exports.memory&&e.exports.memory.buffer&&new Uint8Array(e.exports.memory.buffer)}}function WI(A){return A.charCodeAt(0)}zI.supported="undefined"!=typeof WebAssembly;var TI=r((function(A){var I=jI(),t=64,i=[];A.exports=r;var g=A.exports.BYTES_MIN=16,e=A.exports.BYTES_MAX=64,C=(A.exports.BYTES=32,A.exports.KEYBYTES_MIN=16),n=A.exports.KEYBYTES_MAX=64,Q=(A.exports.KEYBYTES=32,A.exports.SALTBYTES=16),B=A.exports.PERSONALBYTES=16;function r(A,o,E,a,s){if(!(this instanceof r))return new r(A,o,E,a,s);if(!I||!I.exports)throw new Error("WASM not loaded. Wait for Blake2b.ready(cb)");A||(A=32),!0!==s&&(VI(A>=g,"digestLength must be at least "+g+", was given "+A),VI(A<=e,"digestLength must be at most "+e+", was given "+A),null!=o&&(VI(o instanceof Uint8Array,"key must be Uint8Array or Buffer"),VI(o.length>=C,"key must be at least "+C+", was given "+o.length),VI(o.length<=n,"key must be at least "+n+", was given "+o.length)),null!=E&&(VI(E instanceof Uint8Array,"salt must be Uint8Array or Buffer"),VI(E.length===Q,"salt must be exactly "+Q+", was given "+E.length)),null!=a&&(VI(a instanceof Uint8Array,"personal must be Uint8Array or Buffer"),VI(a.length===B,"personal must be exactly "+B+", was given "+a.length))),i.length||(i.push(t),t+=216),this.digestLength=A,this.finalized=!1,this.pointer=i.pop(),I.memory.fill(0,0,64),I.memory[0]=this.digestLength,I.memory[1]=o?o.length:0,I.memory[2]=1,I.memory[3]=1,E&&I.memory.set(E,32),a&&I.memory.set(a,48),this.pointer+216>I.memory.length&&I.realloc(this.pointer+216),I.exports.blake2b_init(this.pointer,this.digestLength),o&&(this.update(o),I.memory.fill(0,t,t+o.length),I.memory[this.pointer+200]=128)}function o(){}function E(A){return A<16?"0"+A.toString(16):A.toString(16)}r.prototype.update=function(A){return VI(!1===this.finalized,"Hash instance finalized"),VI(A instanceof Uint8Array,"input must be Uint8Array or Buffer"),t+A.length>I.memory.length&&I.realloc(t+A.length),I.memory.set(A,t),I.exports.blake2b_update(this.pointer,t,t+A.length),this},r.prototype.getPartialHash=function(){return I.memory.slice(this.pointer,this.pointer+216)},r.prototype.setPartialHash=function(A){I.memory.set(A,this.pointer)},r.prototype.digest=function(A){if(VI(!1===this.finalized,"Hash instance finalized"),this.finalized=!0,i.push(this.pointer),I.exports.blake2b_final(this.pointer),!A||"binary"===A)return I.memory.slice(this.pointer+128,this.pointer+128+this.digestLength);if("hex"===A)return function(A,I,t){for(var i="",g=0;g<t;g++)i+=E(A[I+g]);return i}(I.memory,this.pointer+128,this.digestLength);VI(A instanceof Uint8Array&&A.length>=this.digestLength,"input must be Uint8Array or Buffer");for(var t=0;t<this.digestLength;t++)A[t]=I.memory[this.pointer+128+t];return A},r.prototype.final=r.prototype.digest,r.WASM=I&&I.buffer,r.SUPPORTED="undefined"!=typeof WebAssembly,r.ready=function(A){return A||(A=o),I?new Promise((function(t,i){I.onload((function(I){I?i():t(),A(I)}))})):A(new Error("WebAssembly not supported"))},r.prototype.ready=r.ready}));const _I=[];for(let A=0;A<256;A++)_I[A]=$I(A,8);function $I(A,I){let t=0,i=A;for(let A=0;A<I;A++)t<<=1,t|=1&i,i>>=1;return t}function At(A){return(0!=(4294901760&A)?(A&=4294901760,16):0)|(0!=(4278255360&A)?(A&=4278255360,8):0)|(0!=(4042322160&A)?(A&=4042322160,4):0)|(0!=(3435973836&A)?(A&=3435973836,2):0)|0!=(2863311530&A)}function It(A,I){const t=new DataView(A.buffer,A.byteOffset,A.byteLength);let i="";for(let A=0;A<4;A++){A>0&&(i+="\n"),i+="\t\t";for(let I=0;I<4;I++)I>0&&(i+=" "),i+=t.getUint32(16*A+4*I).toString(16).padStart(8,"0")}return I&&(i=I+"\n"+i),i}function tt(A,I){if(A.byteLength!=I.byteLength)return!1;for(var t=new Int8Array(A),i=new Int8Array(I),g=0;g!=A.byteLength;g++)if(t[g]!=i[g])return!1;return!0}function it(A){const I=A.getPartialHash(),t=TI(64);return t.setPartialHash(I),t}async function gt(A,I,t,i,g){if(A.G1.isZero(I))return!1;if(A.G1.isZero(t))return!1;if(A.G2.isZero(i))return!1;if(A.G2.isZero(g))return!1;return await A.pairingEq(I,g,A.G1.neg(t),i)}async function et(A){for(;!A;)A=await window.prompt("Enter a random text. (Entropy): ","");const I=TI(64);I.update(cA.randomBytes(64));const t=new TextEncoder;I.update(t.encode(A));const i=Buffer.from(I.digest()),g=[];for(let A=0;A<8;A++)g[A]=i.readUInt32BE(4*A);return new DA(g)}function Ct(A,I){let t,i;I<32?(t=1<<I>>>0,i=1):(t=4294967296,i=1<<I-32>>>0);let g=A;for(let A=0;A<i;A++)for(let A=0;A<t;A++)g=cA.createHash("sha256").update(g).digest();const e=new DataView(g.buffer,g.byteOffset,g.byteLength),C=[];for(let A=0;A<8;A++)C[A]=e.getUint32(4*A,!1);return new DA(C)}function nt(A){return A instanceof Uint8Array?A:("0x"==A.slice(0,2)&&(A=A.slice(2)),new Uint8Array(A.match(/[\da-f]{2}/gi).map((function(A){return parseInt(A,16)}))))}function Qt(A){return Array.prototype.map.call(A,(function(A){return("0"+(255&A).toString(16)).slice(-2)})).join("")}async function Bt(A,I){await kI(A,1),await A.writeULE32(1),await NI(A);const t=await OI(I.q);await kI(A,2);const i=t.q,g=8*(Math.floor((aI.bitLength(i)-1)/64)+1),e=t.r,C=8*(Math.floor((aI.bitLength(e)-1)/64)+1);await A.writeULE32(g),await vI(A,i,g),await A.writeULE32(C),await vI(A,e,C),await A.writeULE32(I.nVars),await A.writeULE32(I.nPublic),await A.writeULE32(I.domainSize),await rt(A,t,I.vk_alpha_1),await rt(A,t,I.vk_beta_1),await ot(A,t,I.vk_beta_2),await ot(A,t,I.vk_gamma_2),await rt(A,t,I.vk_delta_1),await ot(A,t,I.vk_delta_2),await NI(A)}async function rt(A,I,t){const i=new Uint8Array(2*I.G1.F.n8);I.G1.toRprLEM(i,0,t),await A.write(i)}async function ot(A,I,t){const i=new Uint8Array(2*I.G2.F.n8);I.G2.toRprLEM(i,0,t),await A.write(i)}async function Et(A,I,t){const i=await A.read(2*I.G1.F.n8),g=I.G1.fromRprLEM(i,0);return t?I.G1.toObject(g):g}async function at(A,I,t){const i=await A.read(2*I.G2.F.n8),g=I.G2.fromRprLEM(i,0);return t?I.G2.toObject(g):g}async function st(A,I,t){await JI(A,I,1);const i=await A.readULE32();if(await SI(A),1==i)return await async function(A,I,t){const i={protocol:"groth16"};await JI(A,I,2);const g=await A.readULE32();i.n8q=g,i.q=await RI(A,g);const e=await A.readULE32();i.n8r=e,i.r=await RI(A,e);let C=await OI(i.q);return i.nVars=await A.readULE32(),i.nPublic=await A.readULE32(),i.domainSize=await A.readULE32(),i.power=At(i.domainSize),i.vk_alpha_1=await Et(A,C,t),i.vk_beta_1=await Et(A,C,t),i.vk_beta_2=await at(A,C,t),i.vk_gamma_2=await at(A,C,t),i.vk_delta_1=await Et(A,C,t),i.vk_delta_2=await at(A,C,t),await SI(A),i}(A,I,t);if(2==i)return await async function(A,I,t,i){const g={protocol:"plonk"};await JI(A,I,2);const e=await A.readULE32();g.n8q=e,g.q=await RI(A,e);const C=await A.readULE32();g.n8r=C,g.r=await RI(A,C);let n=await OI(g.q);return g.nVars=await A.readULE32(),g.nPublic=await A.readULE32(),g.domainSize=await A.readULE32(),g.power=At(g.domainSize),g.nAdditions=await A.readULE32(),g.nConstrains=await A.readULE32(),g.k1=await A.read(C),g.k2=await A.read(C),g.Qm=await Et(A,n,i),g.Ql=await Et(A,n,i),g.Qr=await Et(A,n,i),g.Qo=await Et(A,n,i),g.Qc=await Et(A,n,i),g.S1=await Et(A,n,i),g.S2=await Et(A,n,i),g.S3=await Et(A,n,i),g.X_2=await at(A,n,i),await SI(A),g}(A,I);throw new Error("Protocol not supported: ")}async function ht(A,I,t){const i={delta:{}};i.deltaAfter=await Et(A,I,t),i.delta.g1_s=await Et(A,I,t),i.delta.g1_sx=await Et(A,I,t),i.delta.g2_spx=await at(A,I,t),i.transcript=await A.read(64),i.type=await A.readULE32();const g=await A.readULE32(),e=A.pos;let C=0;for(;A.pos-e<g;){const I=await A.read(1);if(I[0]<=C)throw new Error("Parameters in the contribution must be sorted");if(C=I[0],1==I[0]){const I=await A.read(1),t=await A.read(I[0]);i.name=(new TextDecoder).decode(t)}else if(2==I[0]){const I=await A.read(1);i.numIterationsExp=I[0]}else{if(3!=I[0])throw new Error("Parameter not recognized");{const I=await A.read(1);i.beaconHash=await A.read(I[0])}}}if(A.pos!=e+g)throw new Error("Parametes do not match");return i}async function ft(A,I,t){await JI(A,t,10);const i={contributions:[]};i.csHash=await A.read(64);const g=await A.readULE32();for(let t=0;t<g;t++){const t=await ht(A,I);i.contributions.push(t)}return await SI(A),i}async function wt(A,I,t){await rt(A,I,t.deltaAfter),await rt(A,I,t.delta.g1_s),await rt(A,I,t.delta.g1_sx),await ot(A,I,t.delta.g2_spx),await A.write(t.transcript),await A.writeULE32(t.type||0);const i=[];if(t.name){i.push(1);const A=new TextEncoder("utf-8").encode(t.name.substring(0,64));i.push(A.byteLength);for(let I=0;I<A.byteLength;I++)i.push(A[I])}if(1==t.type){i.push(2),i.push(t.numIterationsExp),i.push(3),i.push(t.beaconHash.byteLength);for(let A=0;A<t.beaconHash.byteLength;A++)i.push(t.beaconHash[A])}if(i.length>0){const I=new Uint8Array(i);await A.writeULE32(I.byteLength),await A.write(I)}else await A.writeULE32(0)}async function Dt(A,I,t){await kI(A,10),await A.write(t.csHash),await A.writeULE32(t.contributions.length);for(let i=0;i<t.contributions.length;i++)await wt(A,I,t.contributions[i]);await NI(A)}function ct(A,I,t){const i=new Uint8Array(2*I.G1.F.n8);I.G1.toRprUncompressed(i,0,t),A.update(i)}function ut(A,I,t){ct(A,I,t.deltaAfter),ct(A,I,t.delta.g1_s),ct(A,I,t.delta.g1_sx),function(A,I,t){const i=new Uint8Array(2*I.G2.F.n8);I.G2.toRprUncompressed(i,0,t),A.update(i)}(A,I,t.delta.g2_spx),A.update(t.transcript)}async function lt(A,I){await JI(A,I,1);const t=await A.readULE32(),i=await RI(A,t),g=await A.readULE32();return await SI(A),{n8:t,q:i,nWitness:g}}const{stringifyBigInts:yt}=sI;async function pt(A,I,t){const{fd:i,sections:g}=await bI(I,"wtns",2),e=await lt(i,g),{fd:C,sections:n}=await bI(A,"zkey",2),Q=await st(C,n);if("groth16"!=Q.protocol)throw new Error("zkey file is not groth16");if(!aI.eq(Q.r,e.q))throw new Error("Curve of the witness does not match the curve of the proving key");if(e.nWitness!=Q.nVars)throw new Error(`Invalid witness length. Circuit: ${Q.nVars}, witness: ${e.nWitness}`);const B=await OI(Q.q),r=B.Fr,o=B.G1,E=B.G2,a=At(Q.domainSize);t&&t.debug("Reading Wtns");const s=await qI(i,g,2);t&&t.debug("Reading Coeffs");const h=await qI(C,n,4);t&&t.debug("Building ABC");const[f,w,D]=await async function(A,I,t,i,g){const e=A.Fr.n8,C=12+I.n8r,n=(i.byteLength-4)/C,Q=new VA(I.domainSize*e),B=new VA(I.domainSize*e),r=new VA(I.domainSize*e),o=[Q,B];for(let I=0;I<n;I++){g&&I%1e6==0&&g.debug(`QAP AB: ${I}/${n}`);const Q=i.slice(4+I*C,4+I*C+C),B=new DataView(Q.buffer),r=B.getUint32(0,!0),E=B.getUint32(4,!0),a=B.getUint32(8,!0),s=Q.slice(12,12+e);o[r].set(A.Fr.add(o[r].slice(E*e,E*e+e),A.Fr.mul(s,t.slice(a*e,a*e+e))),E*e)}for(let t=0;t<I.domainSize;t++)g&&t%1e6==0&&g.debug(`QAP C: ${t}/${I.domainSize}`),r.set(A.Fr.mul(Q.slice(t*e,t*e+e),B.slice(t*e,t*e+e)),t*e);return[Q,B,r]}(B,Q,s,h,t),c=a==r.s?B.Fr.shift:B.Fr.w[a+1],u=await r.ifft(f,"","",t,"IFFT_A"),l=await r.batchApplyKey(u,r.e(1),c),y=await r.fft(l,"","",t,"FFT_A"),p=await r.ifft(w,"","",t,"IFFT_B"),F=await r.batchApplyKey(p,r.e(1),c),M=await r.fft(F,"","",t,"FFT_B"),m=await r.ifft(D,"","",t,"IFFT_C"),d=await r.batchApplyKey(m,r.e(1),c),G=await r.fft(d,"","",t,"FFT_C");t&&t.debug("Join ABC");const H=await async function(A,I,t,i,g,e){const C=1<<22,n=A.Fr.n8,Q=Math.floor(t.byteLength/A.Fr.n8),B=[];for(let I=0;I<Q;I+=C){e&&e.debug(`JoinABC: ${I}/${Q}`);const r=Math.min(Q-I,C),o=[],E=t.slice(I*n,(I+r)*n),a=i.slice(I*n,(I+r)*n),s=g.slice(I*n,(I+r)*n);o.push({cmd:"ALLOCSET",var:0,buff:E}),o.push({cmd:"ALLOCSET",var:1,buff:a}),o.push({cmd:"ALLOCSET",var:2,buff:s}),o.push({cmd:"ALLOC",var:3,len:r*n}),o.push({cmd:"CALL",fnName:"qap_joinABC",params:[{var:0},{var:1},{var:2},{val:r},{var:3}]}),o.push({cmd:"CALL",fnName:"frm_batchFromMontgomery",params:[{var:3},{val:r},{var:3}]}),o.push({cmd:"GET",out:0,var:3,len:r*n}),B.push(A.tm.queueAction(o))}const r=await Promise.all(B);let o;o=t instanceof VA?new VA(t.byteLength):new Uint8Array(t.byteLength);let E=0;for(let A=0;A<r.length;A++)o.set(r[A][0],E),E+=r[A][0].byteLength;return o}(B,0,y,M,G,t);let U={};t&&t.debug("Reading A Points");const b=await qI(C,n,5);U.pi_a=await B.G1.multiExpAffine(b,s,t,"multiexp A"),t&&t.debug("Reading B1 Points");const L=await qI(C,n,6);let k=await B.G1.multiExpAffine(L,s,t,"multiexp B1");t&&t.debug("Reading B2 Points");const N=await qI(C,n,7);U.pi_b=await B.G2.multiExpAffine(N,s,t,"multiexp B2"),t&&t.debug("Reading C Points");const J=await qI(C,n,8);U.pi_c=await B.G1.multiExpAffine(J,s.slice((Q.nPublic+1)*B.Fr.n8),t,"multiexp C"),t&&t.debug("Reading H Points");const S=await qI(C,n,9),v=await B.G1.multiExpAffine(S,H,t,"multiexp H"),R=B.Fr.random(),Y=B.Fr.random();U.pi_a=o.add(U.pi_a,Q.vk_alpha_1),U.pi_a=o.add(U.pi_a,o.timesFr(Q.vk_delta_1,R)),U.pi_b=E.add(U.pi_b,Q.vk_beta_2),U.pi_b=E.add(U.pi_b,E.timesFr(Q.vk_delta_2,Y)),k=o.add(k,Q.vk_beta_1),k=o.add(k,o.timesFr(Q.vk_delta_1,Y)),U.pi_c=o.add(U.pi_c,v),U.pi_c=o.add(U.pi_c,o.timesFr(U.pi_a,Y)),U.pi_c=o.add(U.pi_c,o.timesFr(k,R)),U.pi_c=o.add(U.pi_c,o.timesFr(Q.vk_delta_1,r.neg(r.mul(R,Y))));let q=[];for(let A=1;A<=Q.nPublic;A++){const I=s.slice(A*r.n8,A*r.n8+r.n8);q.push(aI.fromRprLE(I))}return U.pi_a=o.toObject(o.toAffine(U.pi_a)),U.pi_b=E.toObject(E.toAffine(U.pi_b)),U.pi_c=o.toObject(o.toAffine(U.pi_c)),U.protocol="groth16",U.curve=B.name,await C.close(),await i.close(),U=yt(U),q=yt(q),{proof:U,publicSignals:q}}var Ft=r((function(A){var I=function(){var A,I,t,i,g,e,C,n,Q=[],B=["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"],r="1a",o=!1,E="chongo <Landon Curt Noll> /\\../\\",a=52,s={32:{offset:0},64:{offset:[0,0,0,0]},128:{offset:[0,0,0,0,0,0,0,0]},256:{offset:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},512:{offset:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},1024:{offset:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}};for(A=0;A<256;A++)Q[A]=(A>>4&15).toString(16)+(15&A).toString(16);function h(A,I){var t,i,g,e=[0],C="";for(i=0;i<A.length;i+=2){for(t=parseInt(A.substr(i,2),16),g=0;g<e.length;g++)t+=e[g]<<8,e[g]=t%I,t=t/I|0;for(;t>0;)e.push(t%I),t=t/I|0}for(i=e.length-1;i>=0;--i)C+="0123456789abcdefghijklmnopqrstuvwxyz"[e[i]];return C}function f(A,I){return{bits:I,value:A,dec:function(){return h(A,10)},hex:function(){return A},str:function(){return h(A,36)}}}function w(A,I){return{bits:I,value:A,dec:function(){return A.toString()},hex:function(){return Q[A>>>24]+Q[A>>>16&255]+Q[A>>>8&255]+Q[255&A]},str:function(){return A.toString(36)}}}function D(A,I){return{bits:I,value:A,dec:function(){return A.toString()},hex:function(){return("0000000000000000"+A.toString(16)).substr(-13)},str:function(){return A.toString(36)}}}function c(A,Q){var B="object"==typeof A?JSON.stringify(A):A;switch(Q||a){case 32:return I(B);case 64:return i(B);case 128:return g(B);case 256:return e(B);case 512:return C(B);case 1024:return n(B);default:return t(B)}}function u(A){if("1a"===A)r=A,I=o?M:p,t=o?H:d,i=o?k:b,g=o?v:J,e=o?x:Y,C=o?Z:X,n=o?z:K;else{if("1"!==A)throw new Error("Supported FNV versions: 1, 1a");r=A,I=o?m:F,t=o?U:G,i=o?N:L,g=o?R:S,e=o?P:q,C=o?V:O,n=o?W:j}}function l(A){A?(o=!0,I="1a"==r?M:m,t="1a"==r?H:U,i="1a"==r?k:N,g="1a"==r?v:R,e="1a"==r?x:P,C="1a"==r?Z:V,n="1a"==r?z:W):(o=!1,I="1a"==r?p:F,t="1a"==r?d:G,i="1a"==r?b:L,g="1a"==r?J:S,e="1a"==r?Y:q,C="1a"==r?X:O,n="1a"==r?K:j)}function y(A){var I,t,i=r;for(var g in(A=A||0===A?A:E)===E&&u("1"),s){for(s[g].offset=[],t=0;t<g/16;t++)s[g].offset[t]=0;for(I=c(A,parseInt(g,10)).hex(),t=0;t<g/16;t++)s[g].offset[t]=parseInt(I.substr(4*t,4),16)}u(i)}function p(A){var I,t=A.length-3,i=s[32].offset,g=0,e=0|i[1],C=0,n=0|i[0];for(I=0;I<t;)C=403*n,C+=(e^=A.charCodeAt(I++))<<8,e=65535&(g=403*e),C=403*(n=C+(g>>>16)&65535),C+=(e^=A.charCodeAt(I++))<<8,e=65535&(g=403*e),C=403*(n=C+(g>>>16)&65535),C+=(e^=A.charCodeAt(I++))<<8,e=65535&(g=403*e),C=403*(n=C+(g>>>16)&65535),n=(C+=(e^=A.charCodeAt(I++))<<8)+((g=403*e)>>>16)&65535,e=65535&g;for(;I<t+3;)C=403*n,n=(C+=(e^=A.charCodeAt(I++))<<8)+((g=403*e)>>>16)&65535,e=65535&g;return w((n<<16>>>0)+e,32)}function F(A){var I,t=A.length-3,i=s[32].offset,g=0,e=0|i[1],C=0,n=0|i[0];for(I=0;I<t;)C=403*n,C+=e<<8,e=65535&(g=403*e),C=403*(n=C+(g>>>16)&65535),C+=(e^=A.charCodeAt(I++))<<8,e=65535&(g=403*e),C=403*(n=C+(g>>>16)&65535),C+=(e^=A.charCodeAt(I++))<<8,e=65535&(g=403*e),C=403*(n=C+(g>>>16)&65535),n=(C+=(e^=A.charCodeAt(I++))<<8)+((g=403*e)>>>16)&65535,e=65535&g,e^=A.charCodeAt(I++);for(;I<t+3;)C=403*n,n=(C+=e<<8)+((g=403*e)>>>16)&65535,e=65535&g,e^=A.charCodeAt(I++);return w((n<<16>>>0)+e,32)}function M(A){var I,t,i=A.length,g=s[32].offset,e=0,C=0|g[1],n=0,Q=0|g[0];for(t=0;t<i;t++)(I=A.charCodeAt(t))<128?C^=I:I<2048?(n=403*Q,Q=(n+=(C^=I>>6|192)<<8)+((e=403*C)>>>16)&65535,C=65535&e,C^=63&I|128):55296==(64512&I)&&t+1<i&&56320==(64512&A.charCodeAt(t+1))?(n=403*Q,n+=(C^=(I=65536+((1023&I)<<10)+(1023&A.charCodeAt(++t)))>>18|240)<<8,C=65535&(e=403*C),n=403*(Q=n+(e>>>16)&65535),n+=(C^=I>>12&63|128)<<8,C=65535&(e=403*C),n=403*(Q=n+(e>>>16)&65535),Q=(n+=(C^=I>>6&63|128)<<8)+((e=403*C)>>>16)&65535,C=65535&e,C^=63&I|128):(n=403*Q,n+=(C^=I>>12|224)<<8,C=65535&(e=403*C),n=403*(Q=n+(e>>>16)&65535),Q=(n+=(C^=I>>6&63|128)<<8)+((e=403*C)>>>16)&65535,C=65535&e,C^=63&I|128),n=403*Q,Q=(n+=C<<8)+((e=403*C)>>>16)&65535,C=65535&e;return w((Q<<16>>>0)+C,32)}function m(A){var I,t,i=A.length,g=s[32].offset,e=0,C=0|g[1],n=0,Q=0|g[0];for(t=0;t<i;t++)n=403*Q,Q=(n+=C<<8)+((e=403*C)>>>16)&65535,C=65535&e,(I=A.charCodeAt(t))<128?C^=I:I<2048?(n=403*Q,Q=(n+=(C^=I>>6|192)<<8)+((e=403*C)>>>16)&65535,C=65535&e,C^=63&I|128):55296==(64512&I)&&t+1<i&&56320==(64512&A.charCodeAt(t+1))?(n=403*Q,n+=(C^=(I=65536+((1023&I)<<10)+(1023&A.charCodeAt(++t)))>>18|240)<<8,C=65535&(e=403*C),n=403*(Q=n+(e>>>16)&65535),n+=(C^=I>>12&63|128)<<8,C=65535&(e=403*C),n=403*(Q=n+(e>>>16)&65535),Q=(n+=(C^=I>>6&63|128)<<8)+((e=403*C)>>>16)&65535,C=65535&e,C^=63&I|128):(n=403*Q,n+=(C^=I>>12|224)<<8,C=65535&(e=403*C),n=403*(Q=n+(e>>>16)&65535),Q=(n+=(C^=I>>6&63|128)<<8)+((e=403*C)>>>16)&65535,C=65535&e,C^=63&I|128);return w((Q<<16>>>0)+C,32)}function d(A){var I,t=A.length-3,i=s[64].offset,g=0,e=0|i[3],C=0,n=0|i[2],Q=0,B=0|i[1],r=0,o=0|i[0];for(I=0;I<t;)C=435*n,Q=435*B,r=435*o,Q+=(e^=A.charCodeAt(I++))<<8,e=65535&(g=435*e),o=(r+=n<<8)+((Q+=(C+=g>>>16)>>>16)>>>16)&65535,C=435*(n=65535&C),Q=435*(B=65535&Q),r=435*o,Q+=(e^=A.charCodeAt(I++))<<8,e=65535&(g=435*e),o=(r+=n<<8)+((Q+=(C+=g>>>16)>>>16)>>>16)&65535,C=435*(n=65535&C),Q=435*(B=65535&Q),r=435*o,Q+=(e^=A.charCodeAt(I++))<<8,e=65535&(g=435*e),o=(r+=n<<8)+((Q+=(C+=g>>>16)>>>16)>>>16)&65535,C=435*(n=65535&C),Q=435*(B=65535&Q),r=435*o,Q+=(e^=A.charCodeAt(I++))<<8,r+=n<<8,e=65535&(g=435*e),n=65535&(C+=g>>>16),o=r+((Q+=C>>>16)>>>16)&65535,B=65535&Q;for(;I<t+3;)C=435*n,Q=435*B,r=435*o,Q+=(e^=A.charCodeAt(I++))<<8,r+=n<<8,e=65535&(g=435*e),n=65535&(C+=g>>>16),o=r+((Q+=C>>>16)>>>16)&65535,B=65535&Q;return D(281474976710656*(15&o)+4294967296*B+65536*n+(e^o>>4),52)}function G(A){var I,t=A.length-3,i=s[64].offset,g=0,e=0|i[3],C=0,n=0|i[2],Q=0,B=0|i[1],r=0,o=0|i[0];for(I=0;I<t;)C=435*n,Q=435*B,r=435*o,Q+=e<<8,e=65535&(g=435*e),o=(r+=n<<8)+((Q+=(C+=g>>>16)>>>16)>>>16)&65535,C=435*(n=65535&C),Q=435*(B=65535&Q),r=435*o,Q+=(e^=A.charCodeAt(I++))<<8,e=65535&(g=435*e),o=(r+=n<<8)+((Q+=(C+=g>>>16)>>>16)>>>16)&65535,C=435*(n=65535&C),Q=435*(B=65535&Q),r=435*o,Q+=(e^=A.charCodeAt(I++))<<8,e=65535&(g=435*e),o=(r+=n<<8)+((Q+=(C+=g>>>16)>>>16)>>>16)&65535,C=435*(n=65535&C),Q=435*(B=65535&Q),r=435*o,Q+=(e^=A.charCodeAt(I++))<<8,r+=n<<8,e=65535&(g=435*e),n=65535&(C+=g>>>16),o=r+((Q+=C>>>16)>>>16)&65535,B=65535&Q,e^=A.charCodeAt(I++);for(;I<t+3;)C=435*n,Q=435*B,r=435*o,Q+=e<<8,r+=n<<8,e=65535&(g=435*e),n=65535&(C+=g>>>16),o=r+((Q+=C>>>16)>>>16)&65535,B=65535&Q,e^=A.charCodeAt(I++);return D(281474976710656*(15&o)+4294967296*B+65536*n+(e^o>>4),52)}function H(A){var I,t,i=A.length,g=s[64].offset,e=0,C=0|g[3],n=0,Q=0|g[2],B=0,r=0|g[1],o=0,E=0|g[0];for(t=0;t<i;t++)(I=A.charCodeAt(t))<128?C^=I:I<2048?(n=435*Q,B=435*r,o=435*E,B+=(C^=I>>6|192)<<8,o+=Q<<8,C=65535&(e=435*C),Q=65535&(n+=e>>>16),E=o+((B+=n>>>16)>>>16)&65535,r=65535&B,C^=63&I|128):55296==(64512&I)&&t+1<i&&56320==(64512&A.charCodeAt(t+1))?(n=435*Q,B=435*r,o=435*E,B+=(C^=(I=65536+((1023&I)<<10)+(1023&A.charCodeAt(++t)))>>18|240)<<8,C=65535&(e=435*C),E=(o+=Q<<8)+((B+=(n+=e>>>16)>>>16)>>>16)&65535,n=435*(Q=65535&n),B=435*(r=65535&B),o=435*E,B+=(C^=I>>12&63|128)<<8,C=65535&(e=435*C),E=(o+=Q<<8)+((B+=(n+=e>>>16)>>>16)>>>16)&65535,n=435*(Q=65535&n),B=435*(r=65535&B),o=435*E,B+=(C^=I>>6&63|128)<<8,o+=Q<<8,C=65535&(e=435*C),Q=65535&(n+=e>>>16),E=o+((B+=n>>>16)>>>16)&65535,r=65535&B,C^=63&I|128):(n=435*Q,B=435*r,o=435*E,B+=(C^=I>>12|224)<<8,C=65535&(e=435*C),E=(o+=Q<<8)+((B+=(n+=e>>>16)>>>16)>>>16)&65535,n=435*(Q=65535&n),B=435*(r=65535&B),o=435*E,B+=(C^=I>>6&63|128)<<8,o+=Q<<8,C=65535&(e=435*C),Q=65535&(n+=e>>>16),E=o+((B+=n>>>16)>>>16)&65535,r=65535&B,C^=63&I|128),n=435*Q,B=435*r,o=435*E,B+=C<<8,o+=Q<<8,C=65535&(e=435*C),Q=65535&(n+=e>>>16),E=o+((B+=n>>>16)>>>16)&65535,r=65535&B;return D(281474976710656*(15&E)+4294967296*r+65536*Q+(C^E>>4),52)}function U(A){var I,t,i=A.length,g=s[64].offset,e=0,C=0|g[3],n=0,Q=0|g[2],B=0,r=0|g[1],o=0,E=0|g[0];for(t=0;t<i;t++)n=435*Q,B=435*r,o=435*E,B+=C<<8,o+=Q<<8,C=65535&(e=435*C),Q=65535&(n+=e>>>16),E=o+((B+=n>>>16)>>>16)&65535,r=65535&B,(I=A.charCodeAt(t))<128?C^=I:I<2048?(n=435*Q,B=435*r,o=435*E,B+=(C^=I>>6|192)<<8,o+=Q<<8,C=65535&(e=435*C),Q=65535&(n+=e>>>16),E=o+((B+=n>>>16)>>>16)&65535,r=65535&B,C^=63&I|128):55296==(64512&I)&&t+1<i&&56320==(64512&A.charCodeAt(t+1))?(n=435*Q,B=435*r,o=435*E,B+=(C^=(I=65536+((1023&I)<<10)+(1023&A.charCodeAt(++t)))>>18|240)<<8,C=65535&(e=435*C),E=(o+=Q<<8)+((B+=(n+=e>>>16)>>>16)>>>16)&65535,n=435*(Q=65535&n),B=435*(r=65535&B),o=435*E,B+=(C^=I>>12&63|128)<<8,C=65535&(e=435*C),E=(o+=Q<<8)+((B+=(n+=e>>>16)>>>16)>>>16)&65535,n=435*(Q=65535&n),B=435*(r=65535&B),o=435*E,B+=(C^=I>>6&63|128)<<8,o+=Q<<8,C=65535&(e=435*C),Q=65535&(n+=e>>>16),E=o+((B+=n>>>16)>>>16)&65535,r=65535&B,C^=63&I|128):(n=435*Q,B=435*r,o=435*E,B+=(C^=I>>12|224)<<8,C=65535&(e=435*C),E=(o+=Q<<8)+((B+=(n+=e>>>16)>>>16)>>>16)&65535,n=435*(Q=65535&n),B=435*(r=65535&B),o=435*E,B+=(C^=I>>6&63|128)<<8,o+=Q<<8,C=65535&(e=435*C),Q=65535&(n+=e>>>16),E=o+((B+=n>>>16)>>>16)&65535,r=65535&B,C^=63&I|128);return D(281474976710656*(15&E)+4294967296*r+65536*Q+(C^E>>4),52)}function b(A){var I,t=A.length-3,i=s[64].offset,g=0,e=0|i[3],C=0,n=0|i[2],B=0,r=0|i[1],o=0,E=0|i[0];for(I=0;I<t;)C=435*n,B=435*r,o=435*E,B+=(e^=A.charCodeAt(I++))<<8,e=65535&(g=435*e),E=(o+=n<<8)+((B+=(C+=g>>>16)>>>16)>>>16)&65535,C=435*(n=65535&C),B=435*(r=65535&B),o=435*E,B+=(e^=A.charCodeAt(I++))<<8,e=65535&(g=435*e),E=(o+=n<<8)+((B+=(C+=g>>>16)>>>16)>>>16)&65535,C=435*(n=65535&C),B=435*(r=65535&B),o=435*E,B+=(e^=A.charCodeAt(I++))<<8,e=65535&(g=435*e),E=(o+=n<<8)+((B+=(C+=g>>>16)>>>16)>>>16)&65535,C=435*(n=65535&C),B=435*(r=65535&B),o=435*E,B+=(e^=A.charCodeAt(I++))<<8,o+=n<<8,e=65535&(g=435*e),n=65535&(C+=g>>>16),E=o+((B+=C>>>16)>>>16)&65535,r=65535&B;for(;I<t+3;)C=435*n,B=435*r,o=435*E,B+=(e^=A.charCodeAt(I++))<<8,o+=n<<8,e=65535&(g=435*e),n=65535&(C+=g>>>16),E=o+((B+=C>>>16)>>>16)&65535,r=65535&B;return f(Q[E>>8]+Q[255&E]+Q[r>>8]+Q[255&r]+Q[n>>8]+Q[255&n]+Q[e>>8]+Q[255&e],64)}function L(A){var I,t=A.length-3,i=s[64].offset,g=0,e=0|i[3],C=0,n=0|i[2],B=0,r=0|i[1],o=0,E=0|i[0];for(I=0;I<t;)C=435*n,B=435*r,o=435*E,B+=e<<8,e=65535&(g=435*e),E=(o+=n<<8)+((B+=(C+=g>>>16)>>>16)>>>16)&65535,C=435*(n=65535&C),B=435*(r=65535&B),o=435*E,B+=(e^=A.charCodeAt(I++))<<8,e=65535&(g=435*e),E=(o+=n<<8)+((B+=(C+=g>>>16)>>>16)>>>16)&65535,C=435*(n=65535&C),B=435*(r=65535&B),o=435*E,B+=(e^=A.charCodeAt(I++))<<8,e=65535&(g=435*e),E=(o+=n<<8)+((B+=(C+=g>>>16)>>>16)>>>16)&65535,C=435*(n=65535&C),B=435*(r=65535&B),o=435*E,B+=(e^=A.charCodeAt(I++))<<8,o+=n<<8,e=65535&(g=435*e),n=65535&(C+=g>>>16),E=o+((B+=C>>>16)>>>16)&65535,r=65535&B,e^=A.charCodeAt(I++);for(;I<t+3;)C=435*n,B=435*r,o=435*E,B+=e<<8,o+=n<<8,e=65535&(g=435*e),n=65535&(C+=g>>>16),E=o+((B+=C>>>16)>>>16)&65535,r=65535&B,e^=A.charCodeAt(I++);return f(Q[E>>8]+Q[255&E]+Q[r>>8]+Q[255&r]+Q[n>>8]+Q[255&n]+Q[e>>8]+Q[255&e],64)}function k(A){var I,t,i=A.length,g=s[64].offset,e=0,C=0|g[3],n=0,B=0|g[2],r=0,o=0|g[1],E=0,a=0|g[0];for(t=0;t<i;t++)(I=A.charCodeAt(t))<128?C^=I:I<2048?(n=435*B,r=435*o,E=435*a,r+=(C^=I>>6|192)<<8,E+=B<<8,C=65535&(e=435*C),B=65535&(n+=e>>>16),a=E+((r+=n>>>16)>>>16)&65535,o=65535&r,C^=63&I|128):55296==(64512&I)&&t+1<i&&56320==(64512&A.charCodeAt(t+1))?(n=435*B,r=435*o,E=435*a,r+=(C^=(I=65536+((1023&I)<<10)+(1023&A.charCodeAt(++t)))>>18|240)<<8,C=65535&(e=435*C),a=(E+=B<<8)+((r+=(n+=e>>>16)>>>16)>>>16)&65535,n=435*(B=65535&n),r=435*(o=65535&r),E=435*a,r+=(C^=I>>12&63|128)<<8,C=65535&(e=435*C),a=(E+=B<<8)+((r+=(n+=e>>>16)>>>16)>>>16)&65535,n=435*(B=65535&n),r=435*(o=65535&r),E=435*a,r+=(C^=I>>6&63|128)<<8,E+=B<<8,C=65535&(e=435*C),B=65535&(n+=e>>>16),a=E+((r+=n>>>16)>>>16)&65535,o=65535&r,C^=63&I|128):(n=435*B,r=435*o,E=435*a,r+=(C^=I>>12|224)<<8,C=65535&(e=435*C),a=(E+=B<<8)+((r+=(n+=e>>>16)>>>16)>>>16)&65535,n=435*(B=65535&n),r=435*(o=65535&r),E=435*a,r+=(C^=I>>6&63|128)<<8,E+=B<<8,C=65535&(e=435*C),B=65535&(n+=e>>>16),a=E+((r+=n>>>16)>>>16)&65535,o=65535&r,C^=63&I|128),n=435*B,r=435*o,E=435*a,r+=C<<8,E+=B<<8,C=65535&(e=435*C),B=65535&(n+=e>>>16),a=E+((r+=n>>>16)>>>16)&65535,o=65535&r;return f(Q[a>>8]+Q[255&a]+Q[o>>8]+Q[255&o]+Q[B>>8]+Q[255&B]+Q[C>>8]+Q[255&C],64)}function N(A){var I,t,i=A.length,g=s[64].offset,e=0,C=0|g[3],n=0,B=0|g[2],r=0,o=0|g[1],E=0,a=0|g[0];for(t=0;t<i;t++)n=435*B,r=435*o,E=435*a,r+=C<<8,E+=B<<8,C=65535&(e=435*C),B=65535&(n+=e>>>16),a=E+((r+=n>>>16)>>>16)&65535,o=65535&r,(I=A.charCodeAt(t))<128?C^=I:I<2048?(n=435*B,r=435*o,E=435*a,r+=(C^=I>>6|192)<<8,E+=B<<8,C=65535&(e=435*C),B=65535&(n+=e>>>16),a=E+((r+=n>>>16)>>>16)&65535,o=65535&r,C^=63&I|128):55296==(64512&I)&&t+1<i&&56320==(64512&A.charCodeAt(t+1))?(n=435*B,r=435*o,E=435*a,r+=(C^=(I=65536+((1023&I)<<10)+(1023&A.charCodeAt(++t)))>>18|240)<<8,C=65535&(e=435*C),a=(E+=B<<8)+((r+=(n+=e>>>16)>>>16)>>>16)&65535,n=435*(B=65535&n),r=435*(o=65535&r),E=435*a,r+=(C^=I>>12&63|128)<<8,C=65535&(e=435*C),a=(E+=B<<8)+((r+=(n+=e>>>16)>>>16)>>>16)&65535,n=435*(B=65535&n),r=435*(o=65535&r),E=435*a,r+=(C^=I>>6&63|128)<<8,E+=B<<8,C=65535&(e=435*C),B=65535&(n+=e>>>16),a=E+((r+=n>>>16)>>>16)&65535,o=65535&r,C^=63&I|128):(n=435*B,r=435*o,E=435*a,r+=(C^=I>>12|224)<<8,C=65535&(e=435*C),a=(E+=B<<8)+((r+=(n+=e>>>16)>>>16)>>>16)&65535,n=435*(B=65535&n),r=435*(o=65535&r),E=435*a,r+=(C^=I>>6&63|128)<<8,E+=B<<8,C=65535&(e=435*C),B=65535&(n+=e>>>16),a=E+((r+=n>>>16)>>>16)&65535,o=65535&r,C^=63&I|128);return f(Q[a>>8]+Q[255&a]+Q[o>>8]+Q[255&o]+Q[B>>8]+Q[255&B]+Q[C>>8]+Q[255&C],64)}function J(A){var I,t=A.length-3,i=s[128].offset,g=0,e=0|i[7],C=0,n=0|i[6],B=0,r=0|i[5],o=0,E=0|i[4],a=0,h=0|i[3],w=0,D=0|i[2],c=0,u=0|i[1],l=0,y=0|i[0];for(I=0;I<t;)C=315*n,B=315*r,o=315*E,a=315*h,w=315*D,c=315*u,l=315*y,w+=(e^=A.charCodeAt(I++))<<8,c+=n<<8,e=65535&(g=315*e),y=(l+=r<<8)+((c+=(w+=(a+=(o+=(B+=(C+=g>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,C=315*(n=65535&C),B=315*(r=65535&B),o=315*(E=65535&o),a=315*(h=65535&a),w=315*(D=65535&w),c=315*(u=65535&c),l=315*y,w+=(e^=A.charCodeAt(I++))<<8,c+=n<<8,e=65535&(g=315*e),y=(l+=r<<8)+((c+=(w+=(a+=(o+=(B+=(C+=g>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,C=315*(n=65535&C),B=315*(r=65535&B),o=315*(E=65535&o),a=315*(h=65535&a),w=315*(D=65535&w),c=315*(u=65535&c),l=315*y,w+=(e^=A.charCodeAt(I++))<<8,c+=n<<8,e=65535&(g=315*e),y=(l+=r<<8)+((c+=(w+=(a+=(o+=(B+=(C+=g>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,C=315*(n=65535&C),B=315*(r=65535&B),o=315*(E=65535&o),a=315*(h=65535&a),w=315*(D=65535&w),c=315*(u=65535&c),l=315*y,w+=(e^=A.charCodeAt(I++))<<8,c+=n<<8,l+=r<<8,e=65535&(g=315*e),n=65535&(C+=g>>>16),r=65535&(B+=C>>>16),E=65535&(o+=B>>>16),h=65535&(a+=o>>>16),D=65535&(w+=a>>>16),y=l+((c+=w>>>16)>>>16)&65535,u=65535&c;for(;I<t+3;)C=315*n,B=315*r,o=315*E,a=315*h,w=315*D,c=315*u,l=315*y,w+=(e^=A.charCodeAt(I++))<<8,c+=n<<8,l+=r<<8,e=65535&(g=315*e),n=65535&(C+=g>>>16),r=65535&(B+=C>>>16),E=65535&(o+=B>>>16),h=65535&(a+=o>>>16),D=65535&(w+=a>>>16),y=l+((c+=w>>>16)>>>16)&65535,u=65535&c;return f(Q[y>>8]+Q[255&y]+Q[u>>8]+Q[255&u]+Q[D>>8]+Q[255&D]+Q[h>>8]+Q[255&h]+Q[E>>8]+Q[255&E]+Q[r>>8]+Q[255&r]+Q[n>>8]+Q[255&n]+Q[e>>8]+Q[255&e],128)}function S(A){var I,t=A.length-3,i=s[128].offset,g=0,e=0|i[7],C=0,n=0|i[6],B=0,r=0|i[5],o=0,E=0|i[4],a=0,h=0|i[3],w=0,D=0|i[2],c=0,u=0|i[1],l=0,y=0|i[0];for(I=0;I<t;)C=315*n,B=315*r,o=315*E,a=315*h,w=315*D,c=315*u,l=315*y,w+=e<<8,c+=n<<8,e=65535&(g=315*e),y=(l+=r<<8)+((c+=(w+=(a+=(o+=(B+=(C+=g>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,C=315*(n=65535&C),B=315*(r=65535&B),o=315*(E=65535&o),a=315*(h=65535&a),w=315*(D=65535&w),c=315*(u=65535&c),l=315*y,w+=(e^=A.charCodeAt(I++))<<8,c+=n<<8,e=65535&(g=315*e),y=(l+=r<<8)+((c+=(w+=(a+=(o+=(B+=(C+=g>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,C=315*(n=65535&C),B=315*(r=65535&B),o=315*(E=65535&o),a=315*(h=65535&a),w=315*(D=65535&w),c=315*(u=65535&c),l=315*y,w+=(e^=A.charCodeAt(I++))<<8,c+=n<<8,e=65535&(g=315*e),y=(l+=r<<8)+((c+=(w+=(a+=(o+=(B+=(C+=g>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,C=315*(n=65535&C),B=315*(r=65535&B),o=315*(E=65535&o),a=315*(h=65535&a),w=315*(D=65535&w),c=315*(u=65535&c),l=315*y,w+=(e^=A.charCodeAt(I++))<<8,c+=n<<8,l+=r<<8,e=65535&(g=315*e),n=65535&(C+=g>>>16),r=65535&(B+=C>>>16),E=65535&(o+=B>>>16),h=65535&(a+=o>>>16),D=65535&(w+=a>>>16),y=l+((c+=w>>>16)>>>16)&65535,u=65535&c,e^=A.charCodeAt(I++);for(;I<t+3;)C=315*n,B=315*r,o=315*E,a=315*h,w=315*D,c=315*u,l=315*y,w+=e<<8,c+=n<<8,l+=r<<8,e=65535&(g=315*e),n=65535&(C+=g>>>16),r=65535&(B+=C>>>16),E=65535&(o+=B>>>16),h=65535&(a+=o>>>16),D=65535&(w+=a>>>16),y=l+((c+=w>>>16)>>>16)&65535,u=65535&c,e^=A.charCodeAt(I++);return f(Q[y>>8]+Q[255&y]+Q[u>>8]+Q[255&u]+Q[D>>8]+Q[255&D]+Q[h>>8]+Q[255&h]+Q[E>>8]+Q[255&E]+Q[r>>8]+Q[255&r]+Q[n>>8]+Q[255&n]+Q[e>>8]+Q[255&e],128)}function v(A){var I,t,i=A.length,g=s[128].offset,e=0,C=0|g[7],n=0,B=0|g[6],r=0,o=0|g[5],E=0,a=0|g[4],h=0,w=0|g[3],D=0,c=0|g[2],u=0,l=0|g[1],y=0,p=0|g[0];for(t=0;t<i;t++)(I=A.charCodeAt(t))<128?C^=I:I<2048?(n=315*B,r=315*o,E=315*a,h=315*w,D=315*c,u=315*l,y=315*p,D+=(C^=I>>6|192)<<8,u+=B<<8,y+=o<<8,C=65535&(e=315*C),B=65535&(n+=e>>>16),o=65535&(r+=n>>>16),a=65535&(E+=r>>>16),w=65535&(h+=E>>>16),c=65535&(D+=h>>>16),p=y+((u+=D>>>16)>>>16)&65535,l=65535&u,C^=63&I|128):55296==(64512&I)&&t+1<i&&56320==(64512&A.charCodeAt(t+1))?(n=315*B,r=315*o,E=315*a,h=315*w,D=315*c,u=315*l,y=315*p,D+=(C^=(I=65536+((1023&I)<<10)+(1023&A.charCodeAt(++t)))>>18|240)<<8,u+=B<<8,C=65535&(e=315*C),p=(y+=o<<8)+((u+=(D+=(h+=(E+=(r+=(n+=e>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,n=315*(B=65535&n),r=315*(o=65535&r),E=315*(a=65535&E),h=315*(w=65535&h),D=315*(c=65535&D),u=315*(l=65535&u),y=315*p,D+=(C^=I>>12&63|128)<<8,u+=B<<8,C=65535&(e=315*C),p=(y+=o<<8)+((u+=(D+=(h+=(E+=(r+=(n+=e>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,n=315*(B=65535&n),r=315*(o=65535&r),E=315*(a=65535&E),h=315*(w=65535&h),D=315*(c=65535&D),u=315*(l=65535&u),y=315*p,D+=(C^=I>>6&63|128)<<8,u+=B<<8,y+=o<<8,C=65535&(e=315*C),B=65535&(n+=e>>>16),o=65535&(r+=n>>>16),a=65535&(E+=r>>>16),w=65535&(h+=E>>>16),c=65535&(D+=h>>>16),p=y+((u+=D>>>16)>>>16)&65535,l=65535&u,C^=63&I|128):(n=315*B,r=315*o,E=315*a,h=315*w,D=315*c,u=315*l,y=315*p,D+=(C^=I>>12|224)<<8,u+=B<<8,C=65535&(e=315*C),p=(y+=o<<8)+((u+=(D+=(h+=(E+=(r+=(n+=e>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,n=315*(B=65535&n),r=315*(o=65535&r),E=315*(a=65535&E),h=315*(w=65535&h),D=315*(c=65535&D),u=315*(l=65535&u),y=315*p,D+=(C^=I>>6&63|128)<<8,u+=B<<8,y+=o<<8,C=65535&(e=315*C),B=65535&(n+=e>>>16),o=65535&(r+=n>>>16),a=65535&(E+=r>>>16),w=65535&(h+=E>>>16),c=65535&(D+=h>>>16),p=y+((u+=D>>>16)>>>16)&65535,l=65535&u,C^=63&I|128),n=315*B,r=315*o,E=315*a,h=315*w,D=315*c,u=315*l,y=315*p,D+=C<<8,u+=B<<8,y+=o<<8,C=65535&(e=315*C),B=65535&(n+=e>>>16),o=65535&(r+=n>>>16),a=65535&(E+=r>>>16),w=65535&(h+=E>>>16),c=65535&(D+=h>>>16),p=y+((u+=D>>>16)>>>16)&65535,l=65535&u;return f(Q[p>>8]+Q[255&p]+Q[l>>8]+Q[255&l]+Q[c>>8]+Q[255&c]+Q[w>>8]+Q[255&w]+Q[a>>8]+Q[255&a]+Q[o>>8]+Q[255&o]+Q[B>>8]+Q[255&B]+Q[C>>8]+Q[255&C],128)}function R(A){var I,t,i=A.length,g=s[128].offset,e=0,C=0|g[7],n=0,B=0|g[6],r=0,o=0|g[5],E=0,a=0|g[4],h=0,w=0|g[3],D=0,c=0|g[2],u=0,l=0|g[1],y=0,p=0|g[0];for(t=0;t<i;t++)n=315*B,r=315*o,E=315*a,h=315*w,D=315*c,u=315*l,y=315*p,D+=C<<8,u+=B<<8,y+=o<<8,C=65535&(e=315*C),B=65535&(n+=e>>>16),o=65535&(r+=n>>>16),a=65535&(E+=r>>>16),w=65535&(h+=E>>>16),c=65535&(D+=h>>>16),p=y+((u+=D>>>16)>>>16)&65535,l=65535&u,(I=A.charCodeAt(t))<128?C^=I:I<2048?(n=315*B,r=315*o,E=315*a,h=315*w,D=315*c,u=315*l,y=315*p,D+=(C^=I>>6|192)<<8,u+=B<<8,y+=o<<8,C=65535&(e=315*C),B=65535&(n+=e>>>16),o=65535&(r+=n>>>16),a=65535&(E+=r>>>16),w=65535&(h+=E>>>16),c=65535&(D+=h>>>16),p=y+((u+=D>>>16)>>>16)&65535,l=65535&u,C^=63&I|128):55296==(64512&I)&&t+1<i&&56320==(64512&A.charCodeAt(t+1))?(n=315*B,r=315*o,E=315*a,h=315*w,D=315*c,u=315*l,y=315*p,D+=(C^=(I=65536+((1023&I)<<10)+(1023&A.charCodeAt(++t)))>>18|240)<<8,u+=B<<8,C=65535&(e=315*C),p=(y+=o<<8)+((u+=(D+=(h+=(E+=(r+=(n+=e>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,n=315*(B=65535&n),r=315*(o=65535&r),E=315*(a=65535&E),h=315*(w=65535&h),D=315*(c=65535&D),u=315*(l=65535&u),y=315*p,D+=(C^=I>>12&63|128)<<8,u+=B<<8,C=65535&(e=315*C),p=(y+=o<<8)+((u+=(D+=(h+=(E+=(r+=(n+=e>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,n=315*(B=65535&n),r=315*(o=65535&r),E=315*(a=65535&E),h=315*(w=65535&h),D=315*(c=65535&D),u=315*(l=65535&u),y=315*p,D+=(C^=I>>6&63|128)<<8,u+=B<<8,y+=o<<8,C=65535&(e=315*C),B=65535&(n+=e>>>16),o=65535&(r+=n>>>16),a=65535&(E+=r>>>16),w=65535&(h+=E>>>16),c=65535&(D+=h>>>16),p=y+((u+=D>>>16)>>>16)&65535,l=65535&u,C^=63&I|128):(n=315*B,r=315*o,E=315*a,h=315*w,D=315*c,u=315*l,y=315*p,D+=(C^=I>>12|224)<<8,u+=B<<8,C=65535&(e=315*C),p=(y+=o<<8)+((u+=(D+=(h+=(E+=(r+=(n+=e>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,n=315*(B=65535&n),r=315*(o=65535&r),E=315*(a=65535&E),h=315*(w=65535&h),D=315*(c=65535&D),u=315*(l=65535&u),y=315*p,D+=(C^=I>>6&63|128)<<8,u+=B<<8,y+=o<<8,C=65535&(e=315*C),B=65535&(n+=e>>>16),o=65535&(r+=n>>>16),a=65535&(E+=r>>>16),w=65535&(h+=E>>>16),c=65535&(D+=h>>>16),p=y+((u+=D>>>16)>>>16)&65535,l=65535&u,C^=63&I|128);return f(Q[p>>8]+Q[255&p]+Q[l>>8]+Q[255&l]+Q[c>>8]+Q[255&c]+Q[w>>8]+Q[255&w]+Q[a>>8]+Q[255&a]+Q[o>>8]+Q[255&o]+Q[B>>8]+Q[255&B]+Q[C>>8]+Q[255&C],128)}function Y(A){var I,t=A.length-3,i=s[256].offset,g=0,e=0|i[15],C=0,n=0|i[14],B=0,r=0|i[13],o=0,E=0|i[12],a=0,h=0|i[11],w=0,D=0|i[10],c=0,u=0|i[9],l=0,y=0|i[8],p=0,F=0|i[7],M=0,m=0|i[6],d=0,G=0|i[5],H=0,U=0|i[4],b=0,L=0|i[3],k=0,N=0|i[2],J=0,S=0|i[1],v=0,R=0|i[0];for(I=0;I<t;)C=355*n,B=355*r,o=355*E,a=355*h,w=355*D,c=355*u,l=355*y,p=355*F,M=355*m,d=355*G,H=355*U,b=355*L,k=355*N,J=355*S,v=355*R,d+=(e^=A.charCodeAt(I++))<<8,H+=n<<8,b+=r<<8,k+=E<<8,J+=h<<8,e=65535&(g=355*e),R=(v+=D<<8)+((J+=(k+=(b+=(H+=(d+=(M+=(p+=(l+=(c+=(w+=(a+=(o+=(B+=(C+=g>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,C=355*(n=65535&C),B=355*(r=65535&B),o=355*(E=65535&o),a=355*(h=65535&a),w=355*(D=65535&w),c=355*(u=65535&c),l=355*(y=65535&l),p=355*(F=65535&p),M=355*(m=65535&M),d=355*(G=65535&d),H=355*(U=65535&H),b=355*(L=65535&b),k=355*(N=65535&k),J=355*(S=65535&J),v=355*R,d+=(e^=A.charCodeAt(I++))<<8,H+=n<<8,b+=r<<8,k+=E<<8,J+=h<<8,e=65535&(g=355*e),R=(v+=D<<8)+((J+=(k+=(b+=(H+=(d+=(M+=(p+=(l+=(c+=(w+=(a+=(o+=(B+=(C+=g>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,C=355*(n=65535&C),B=355*(r=65535&B),o=355*(E=65535&o),a=355*(h=65535&a),w=355*(D=65535&w),c=355*(u=65535&c),l=355*(y=65535&l),p=355*(F=65535&p),M=355*(m=65535&M),d=355*(G=65535&d),H=355*(U=65535&H),b=355*(L=65535&b),k=355*(N=65535&k),J=355*(S=65535&J),v=355*R,d+=(e^=A.charCodeAt(I++))<<8,H+=n<<8,b+=r<<8,k+=E<<8,J+=h<<8,e=65535&(g=355*e),R=(v+=D<<8)+((J+=(k+=(b+=(H+=(d+=(M+=(p+=(l+=(c+=(w+=(a+=(o+=(B+=(C+=g>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,C=355*(n=65535&C),B=355*(r=65535&B),o=355*(E=65535&o),a=355*(h=65535&a),w=355*(D=65535&w),c=355*(u=65535&c),l=355*(y=65535&l),p=355*(F=65535&p),M=355*(m=65535&M),d=355*(G=65535&d),H=355*(U=65535&H),b=355*(L=65535&b),k=355*(N=65535&k),J=355*(S=65535&J),v=355*R,d+=(e^=A.charCodeAt(I++))<<8,H+=n<<8,b+=r<<8,k+=E<<8,J+=h<<8,v+=D<<8,e=65535&(g=355*e),n=65535&(C+=g>>>16),r=65535&(B+=C>>>16),E=65535&(o+=B>>>16),h=65535&(a+=o>>>16),D=65535&(w+=a>>>16),u=65535&(c+=w>>>16),y=65535&(l+=c>>>16),F=65535&(p+=l>>>16),m=65535&(M+=p>>>16),G=65535&(d+=M>>>16),U=65535&(H+=d>>>16),L=65535&(b+=H>>>16),N=65535&(k+=b>>>16),R=v+((J+=k>>>16)>>>16)&65535,S=65535&J;for(;I<t+3;)C=355*n,B=355*r,o=355*E,a=355*h,w=355*D,c=355*u,l=355*y,p=355*F,M=355*m,d=355*G,H=355*U,b=355*L,k=355*N,J=355*S,v=355*R,d+=(e^=A.charCodeAt(I++))<<8,H+=n<<8,b+=r<<8,k+=E<<8,J+=h<<8,v+=D<<8,e=65535&(g=355*e),n=65535&(C+=g>>>16),r=65535&(B+=C>>>16),E=65535&(o+=B>>>16),h=65535&(a+=o>>>16),D=65535&(w+=a>>>16),u=65535&(c+=w>>>16),y=65535&(l+=c>>>16),F=65535&(p+=l>>>16),m=65535&(M+=p>>>16),G=65535&(d+=M>>>16),U=65535&(H+=d>>>16),L=65535&(b+=H>>>16),N=65535&(k+=b>>>16),R=v+((J+=k>>>16)>>>16)&65535,S=65535&J;return f(Q[R>>8]+Q[255&R]+Q[S>>8]+Q[255&S]+Q[N>>8]+Q[255&N]+Q[L>>8]+Q[255&L]+Q[U>>8]+Q[255&U]+Q[G>>8]+Q[255&G]+Q[m>>8]+Q[255&m]+Q[F>>8]+Q[255&F]+Q[y>>8]+Q[255&y]+Q[u>>8]+Q[255&u]+Q[D>>8]+Q[255&D]+Q[h>>8]+Q[255&h]+Q[E>>8]+Q[255&E]+Q[r>>8]+Q[255&r]+Q[n>>8]+Q[255&n]+Q[e>>8]+Q[255&e],256)}function q(A){var I,t=A.length-3,i=s[256].offset,g=0,e=0|i[15],C=0,n=0|i[14],B=0,r=0|i[13],o=0,E=0|i[12],a=0,h=0|i[11],w=0,D=0|i[10],c=0,u=0|i[9],l=0,y=0|i[8],p=0,F=0|i[7],M=0,m=0|i[6],d=0,G=0|i[5],H=0,U=0|i[4],b=0,L=0|i[3],k=0,N=0|i[2],J=0,S=0|i[1],v=0,R=0|i[0];for(I=0;I<t;)C=355*n,B=355*r,o=355*E,a=355*h,w=355*D,c=355*u,l=355*y,p=355*F,M=355*m,d=355*G,H=355*U,b=355*L,k=355*N,J=355*S,v=355*R,d+=e<<8,H+=n<<8,b+=r<<8,k+=E<<8,J+=h<<8,e=65535&(g=355*e),R=(v+=D<<8)+((J+=(k+=(b+=(H+=(d+=(M+=(p+=(l+=(c+=(w+=(a+=(o+=(B+=(C+=g>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,C=355*(n=65535&C),B=355*(r=65535&B),o=355*(E=65535&o),a=355*(h=65535&a),w=355*(D=65535&w),c=355*(u=65535&c),l=355*(y=65535&l),p=355*(F=65535&p),M=355*(m=65535&M),d=355*(G=65535&d),H=355*(U=65535&H),b=355*(L=65535&b),k=355*(N=65535&k),J=355*(S=65535&J),v=355*R,d+=(e^=A.charCodeAt(I++))<<8,H+=n<<8,b+=r<<8,k+=E<<8,J+=h<<8,e=65535&(g=355*e),R=(v+=D<<8)+((J+=(k+=(b+=(H+=(d+=(M+=(p+=(l+=(c+=(w+=(a+=(o+=(B+=(C+=g>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,C=355*(n=65535&C),B=355*(r=65535&B),o=355*(E=65535&o),a=355*(h=65535&a),w=355*(D=65535&w),c=355*(u=65535&c),l=355*(y=65535&l),p=355*(F=65535&p),M=355*(m=65535&M),d=355*(G=65535&d),H=355*(U=65535&H),b=355*(L=65535&b),k=355*(N=65535&k),J=355*(S=65535&J),v=355*R,d+=(e^=A.charCodeAt(I++))<<8,H+=n<<8,b+=r<<8,k+=E<<8,J+=h<<8,e=65535&(g=355*e),R=(v+=D<<8)+((J+=(k+=(b+=(H+=(d+=(M+=(p+=(l+=(c+=(w+=(a+=(o+=(B+=(C+=g>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,C=355*(n=65535&C),B=355*(r=65535&B),o=355*(E=65535&o),a=355*(h=65535&a),w=355*(D=65535&w),c=355*(u=65535&c),l=355*(y=65535&l),p=355*(F=65535&p),M=355*(m=65535&M),d=355*(G=65535&d),H=355*(U=65535&H),b=355*(L=65535&b),k=355*(N=65535&k),J=355*(S=65535&J),v=355*R,d+=(e^=A.charCodeAt(I++))<<8,H+=n<<8,b+=r<<8,k+=E<<8,J+=h<<8,v+=D<<8,e=65535&(g=355*e),n=65535&(C+=g>>>16),r=65535&(B+=C>>>16),E=65535&(o+=B>>>16),h=65535&(a+=o>>>16),D=65535&(w+=a>>>16),u=65535&(c+=w>>>16),y=65535&(l+=c>>>16),F=65535&(p+=l>>>16),m=65535&(M+=p>>>16),G=65535&(d+=M>>>16),U=65535&(H+=d>>>16),L=65535&(b+=H>>>16),N=65535&(k+=b>>>16),R=v+((J+=k>>>16)>>>16)&65535,S=65535&J,e^=A.charCodeAt(I++);for(;I<t+3;)C=355*n,B=355*r,o=355*E,a=355*h,w=355*D,c=355*u,l=355*y,p=355*F,M=355*m,d=355*G,H=355*U,b=355*L,k=355*N,J=355*S,v=355*R,d+=e<<8,H+=n<<8,b+=r<<8,k+=E<<8,J+=h<<8,v+=D<<8,e=65535&(g=355*e),n=65535&(C+=g>>>16),r=65535&(B+=C>>>16),E=65535&(o+=B>>>16),h=65535&(a+=o>>>16),D=65535&(w+=a>>>16),u=65535&(c+=w>>>16),y=65535&(l+=c>>>16),F=65535&(p+=l>>>16),m=65535&(M+=p>>>16),G=65535&(d+=M>>>16),U=65535&(H+=d>>>16),L=65535&(b+=H>>>16),N=65535&(k+=b>>>16),R=v+((J+=k>>>16)>>>16)&65535,S=65535&J,e^=A.charCodeAt(I++);return f(Q[R>>8]+Q[255&R]+Q[S>>8]+Q[255&S]+Q[N>>8]+Q[255&N]+Q[L>>8]+Q[255&L]+Q[U>>8]+Q[255&U]+Q[G>>8]+Q[255&G]+Q[m>>8]+Q[255&m]+Q[F>>8]+Q[255&F]+Q[y>>8]+Q[255&y]+Q[u>>8]+Q[255&u]+Q[D>>8]+Q[255&D]+Q[h>>8]+Q[255&h]+Q[E>>8]+Q[255&E]+Q[r>>8]+Q[255&r]+Q[n>>8]+Q[255&n]+Q[e>>8]+Q[255&e],256)}function x(A){var I,t,i=A.length,g=s[256].offset,e=0,C=0|g[15],n=0,B=0|g[14],r=0,o=0|g[13],E=0,a=0|g[12],h=0,w=0|g[11],D=0,c=0|g[10],u=0,l=0|g[9],y=0,p=0|g[8],F=0,M=0|g[7],m=0,d=0|g[6],G=0,H=0|g[5],U=0,b=0|g[4],L=0,k=0|g[3],N=0,J=0|g[2],S=0,v=0|g[1],R=0,Y=0|g[0];for(t=0;t<i;t++)(I=A.charCodeAt(t))<128?C^=I:I<2048?(n=355*B,r=355*o,E=355*a,h=355*w,D=355*c,u=355*l,y=355*p,F=355*M,m=355*d,G=355*H,U=355*b,L=355*k,N=355*J,S=355*v,R=355*Y,G+=(C^=I>>6|192)<<8,U+=B<<8,L+=o<<8,N+=a<<8,S+=w<<8,R+=c<<8,C=65535&(e=355*C),B=65535&(n+=e>>>16),o=65535&(r+=n>>>16),a=65535&(E+=r>>>16),w=65535&(h+=E>>>16),c=65535&(D+=h>>>16),l=65535&(u+=D>>>16),p=65535&(y+=u>>>16),M=65535&(F+=y>>>16),d=65535&(m+=F>>>16),H=65535&(G+=m>>>16),b=65535&(U+=G>>>16),k=65535&(L+=U>>>16),J=65535&(N+=L>>>16),Y=R+((S+=N>>>16)>>>16)&65535,v=65535&S,C^=63&I|128):55296==(64512&I)&&t+1<i&&56320==(64512&A.charCodeAt(t+1))?(n=355*B,r=355*o,E=355*a,h=355*w,D=355*c,u=355*l,y=355*p,F=355*M,m=355*d,G=355*H,U=355*b,L=355*k,N=355*J,S=355*v,R=355*Y,G+=(C^=(I=65536+((1023&I)<<10)+(1023&A.charCodeAt(++t)))>>18|240)<<8,U+=B<<8,L+=o<<8,N+=a<<8,S+=w<<8,C=65535&(e=355*C),Y=(R+=c<<8)+((S+=(N+=(L+=(U+=(G+=(m+=(F+=(y+=(u+=(D+=(h+=(E+=(r+=(n+=e>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,n=355*(B=65535&n),r=355*(o=65535&r),E=355*(a=65535&E),h=355*(w=65535&h),D=355*(c=65535&D),u=355*(l=65535&u),y=355*(p=65535&y),F=355*(M=65535&F),m=355*(d=65535&m),G=355*(H=65535&G),U=355*(b=65535&U),L=355*(k=65535&L),N=355*(J=65535&N),S=355*(v=65535&S),R=355*Y,G+=(C^=I>>12&63|128)<<8,U+=B<<8,L+=o<<8,N+=a<<8,S+=w<<8,C=65535&(e=355*C),Y=(R+=c<<8)+((S+=(N+=(L+=(U+=(G+=(m+=(F+=(y+=(u+=(D+=(h+=(E+=(r+=(n+=e>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,n=355*(B=65535&n),r=355*(o=65535&r),E=355*(a=65535&E),h=355*(w=65535&h),D=355*(c=65535&D),u=355*(l=65535&u),y=355*(p=65535&y),F=355*(M=65535&F),m=355*(d=65535&m),G=355*(H=65535&G),U=355*(b=65535&U),L=355*(k=65535&L),N=355*(J=65535&N),S=355*(v=65535&S),R=355*Y,G+=(C^=I>>6&63|128)<<8,U+=B<<8,L+=o<<8,N+=a<<8,S+=w<<8,R+=c<<8,C=65535&(e=355*C),B=65535&(n+=e>>>16),o=65535&(r+=n>>>16),a=65535&(E+=r>>>16),w=65535&(h+=E>>>16),c=65535&(D+=h>>>16),l=65535&(u+=D>>>16),p=65535&(y+=u>>>16),M=65535&(F+=y>>>16),d=65535&(m+=F>>>16),H=65535&(G+=m>>>16),b=65535&(U+=G>>>16),k=65535&(L+=U>>>16),J=65535&(N+=L>>>16),Y=R+((S+=N>>>16)>>>16)&65535,v=65535&S,C^=63&I|128):(n=355*B,r=355*o,E=355*a,h=355*w,D=355*c,u=355*l,y=355*p,F=355*M,m=355*d,G=355*H,U=355*b,L=355*k,N=355*J,S=355*v,R=355*Y,G+=(C^=I>>12|224)<<8,U+=B<<8,L+=o<<8,N+=a<<8,S+=w<<8,C=65535&(e=355*C),Y=(R+=c<<8)+((S+=(N+=(L+=(U+=(G+=(m+=(F+=(y+=(u+=(D+=(h+=(E+=(r+=(n+=e>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,n=355*(B=65535&n),r=355*(o=65535&r),E=355*(a=65535&E),h=355*(w=65535&h),D=355*(c=65535&D),u=355*(l=65535&u),y=355*(p=65535&y),F=355*(M=65535&F),m=355*(d=65535&m),G=355*(H=65535&G),U=355*(b=65535&U),L=355*(k=65535&L),N=355*(J=65535&N),S=355*(v=65535&S),R=355*Y,G+=(C^=I>>6&63|128)<<8,U+=B<<8,L+=o<<8,N+=a<<8,S+=w<<8,R+=c<<8,C=65535&(e=355*C),B=65535&(n+=e>>>16),o=65535&(r+=n>>>16),a=65535&(E+=r>>>16),w=65535&(h+=E>>>16),c=65535&(D+=h>>>16),l=65535&(u+=D>>>16),p=65535&(y+=u>>>16),M=65535&(F+=y>>>16),d=65535&(m+=F>>>16),H=65535&(G+=m>>>16),b=65535&(U+=G>>>16),k=65535&(L+=U>>>16),J=65535&(N+=L>>>16),Y=R+((S+=N>>>16)>>>16)&65535,v=65535&S,C^=63&I|128),n=355*B,r=355*o,E=355*a,h=355*w,D=355*c,u=355*l,y=355*p,F=355*M,m=355*d,G=355*H,U=355*b,L=355*k,N=355*J,S=355*v,R=355*Y,G+=C<<8,U+=B<<8,L+=o<<8,N+=a<<8,S+=w<<8,R+=c<<8,C=65535&(e=355*C),B=65535&(n+=e>>>16),o=65535&(r+=n>>>16),a=65535&(E+=r>>>16),w=65535&(h+=E>>>16),c=65535&(D+=h>>>16),l=65535&(u+=D>>>16),p=65535&(y+=u>>>16),M=65535&(F+=y>>>16),d=65535&(m+=F>>>16),H=65535&(G+=m>>>16),b=65535&(U+=G>>>16),k=65535&(L+=U>>>16),J=65535&(N+=L>>>16),Y=R+((S+=N>>>16)>>>16)&65535,v=65535&S;return f(Q[Y>>8]+Q[255&Y]+Q[v>>8]+Q[255&v]+Q[J>>8]+Q[255&J]+Q[k>>8]+Q[255&k]+Q[b>>8]+Q[255&b]+Q[H>>8]+Q[255&H]+Q[d>>8]+Q[255&d]+Q[M>>8]+Q[255&M]+Q[p>>8]+Q[255&p]+Q[l>>8]+Q[255&l]+Q[c>>8]+Q[255&c]+Q[w>>8]+Q[255&w]+Q[a>>8]+Q[255&a]+Q[o>>8]+Q[255&o]+Q[B>>8]+Q[255&B]+Q[C>>8]+Q[255&C],256)}function P(A){var I,t,i=A.length,g=s[256].offset,e=0,C=0|g[15],n=0,B=0|g[14],r=0,o=0|g[13],E=0,a=0|g[12],h=0,w=0|g[11],D=0,c=0|g[10],u=0,l=0|g[9],y=0,p=0|g[8],F=0,M=0|g[7],m=0,d=0|g[6],G=0,H=0|g[5],U=0,b=0|g[4],L=0,k=0|g[3],N=0,J=0|g[2],S=0,v=0|g[1],R=0,Y=0|g[0];for(t=0;t<i;t++)n=355*B,r=355*o,E=355*a,h=355*w,D=355*c,u=355*l,y=355*p,F=355*M,m=355*d,G=355*H,U=355*b,L=355*k,N=355*J,S=355*v,R=355*Y,G+=C<<8,U+=B<<8,L+=o<<8,N+=a<<8,S+=w<<8,R+=c<<8,C=65535&(e=355*C),B=65535&(n+=e>>>16),o=65535&(r+=n>>>16),a=65535&(E+=r>>>16),w=65535&(h+=E>>>16),c=65535&(D+=h>>>16),l=65535&(u+=D>>>16),p=65535&(y+=u>>>16),M=65535&(F+=y>>>16),d=65535&(m+=F>>>16),H=65535&(G+=m>>>16),b=65535&(U+=G>>>16),k=65535&(L+=U>>>16),J=65535&(N+=L>>>16),Y=R+((S+=N>>>16)>>>16)&65535,v=65535&S,(I=A.charCodeAt(t))<128?C^=I:I<2048?(n=355*B,r=355*o,E=355*a,h=355*w,D=355*c,u=355*l,y=355*p,F=355*M,m=355*d,G=355*H,U=355*b,L=355*k,N=355*J,S=355*v,R=355*Y,G+=(C^=I>>6|192)<<8,U+=B<<8,L+=o<<8,N+=a<<8,S+=w<<8,R+=c<<8,C=65535&(e=355*C),B=65535&(n+=e>>>16),o=65535&(r+=n>>>16),a=65535&(E+=r>>>16),w=65535&(h+=E>>>16),c=65535&(D+=h>>>16),l=65535&(u+=D>>>16),p=65535&(y+=u>>>16),M=65535&(F+=y>>>16),d=65535&(m+=F>>>16),H=65535&(G+=m>>>16),b=65535&(U+=G>>>16),k=65535&(L+=U>>>16),J=65535&(N+=L>>>16),Y=R+((S+=N>>>16)>>>16)&65535,v=65535&S,C^=63&I|128):55296==(64512&I)&&t+1<i&&56320==(64512&A.charCodeAt(t+1))?(n=355*B,r=355*o,E=355*a,h=355*w,D=355*c,u=355*l,y=355*p,F=355*M,m=355*d,G=355*H,U=355*b,L=355*k,N=355*J,S=355*v,R=355*Y,G+=(C^=(I=65536+((1023&I)<<10)+(1023&A.charCodeAt(++t)))>>18|240)<<8,U+=B<<8,L+=o<<8,N+=a<<8,S+=w<<8,C=65535&(e=355*C),Y=(R+=c<<8)+((S+=(N+=(L+=(U+=(G+=(m+=(F+=(y+=(u+=(D+=(h+=(E+=(r+=(n+=e>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,n=355*(B=65535&n),r=355*(o=65535&r),E=355*(a=65535&E),h=355*(w=65535&h),D=355*(c=65535&D),u=355*(l=65535&u),y=355*(p=65535&y),F=355*(M=65535&F),m=355*(d=65535&m),G=355*(H=65535&G),U=355*(b=65535&U),L=355*(k=65535&L),N=355*(J=65535&N),S=355*(v=65535&S),R=355*Y,G+=(C^=I>>12&63|128)<<8,U+=B<<8,L+=o<<8,N+=a<<8,S+=w<<8,C=65535&(e=355*C),Y=(R+=c<<8)+((S+=(N+=(L+=(U+=(G+=(m+=(F+=(y+=(u+=(D+=(h+=(E+=(r+=(n+=e>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,n=355*(B=65535&n),r=355*(o=65535&r),E=355*(a=65535&E),h=355*(w=65535&h),D=355*(c=65535&D),u=355*(l=65535&u),y=355*(p=65535&y),F=355*(M=65535&F),m=355*(d=65535&m),G=355*(H=65535&G),U=355*(b=65535&U),L=355*(k=65535&L),N=355*(J=65535&N),S=355*(v=65535&S),R=355*Y,G+=(C^=I>>6&63|128)<<8,U+=B<<8,L+=o<<8,N+=a<<8,S+=w<<8,R+=c<<8,C=65535&(e=355*C),B=65535&(n+=e>>>16),o=65535&(r+=n>>>16),a=65535&(E+=r>>>16),w=65535&(h+=E>>>16),c=65535&(D+=h>>>16),l=65535&(u+=D>>>16),p=65535&(y+=u>>>16),M=65535&(F+=y>>>16),d=65535&(m+=F>>>16),H=65535&(G+=m>>>16),b=65535&(U+=G>>>16),k=65535&(L+=U>>>16),J=65535&(N+=L>>>16),Y=R+((S+=N>>>16)>>>16)&65535,v=65535&S,C^=63&I|128):(n=355*B,r=355*o,E=355*a,h=355*w,D=355*c,u=355*l,y=355*p,F=355*M,m=355*d,G=355*H,U=355*b,L=355*k,N=355*J,S=355*v,R=355*Y,G+=(C^=I>>12|224)<<8,U+=B<<8,L+=o<<8,N+=a<<8,S+=w<<8,C=65535&(e=355*C),Y=(R+=c<<8)+((S+=(N+=(L+=(U+=(G+=(m+=(F+=(y+=(u+=(D+=(h+=(E+=(r+=(n+=e>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,n=355*(B=65535&n),r=355*(o=65535&r),E=355*(a=65535&E),h=355*(w=65535&h),D=355*(c=65535&D),u=355*(l=65535&u),y=355*(p=65535&y),F=355*(M=65535&F),m=355*(d=65535&m),G=355*(H=65535&G),U=355*(b=65535&U),L=355*(k=65535&L),N=355*(J=65535&N),S=355*(v=65535&S),R=355*Y,G+=(C^=I>>6&63|128)<<8,U+=B<<8,L+=o<<8,N+=a<<8,S+=w<<8,R+=c<<8,C=65535&(e=355*C),B=65535&(n+=e>>>16),o=65535&(r+=n>>>16),a=65535&(E+=r>>>16),w=65535&(h+=E>>>16),c=65535&(D+=h>>>16),l=65535&(u+=D>>>16),p=65535&(y+=u>>>16),M=65535&(F+=y>>>16),d=65535&(m+=F>>>16),H=65535&(G+=m>>>16),b=65535&(U+=G>>>16),k=65535&(L+=U>>>16),J=65535&(N+=L>>>16),Y=R+((S+=N>>>16)>>>16)&65535,v=65535&S,C^=63&I|128);return f(Q[Y>>8]+Q[255&Y]+Q[v>>8]+Q[255&v]+Q[J>>8]+Q[255&J]+Q[k>>8]+Q[255&k]+Q[b>>8]+Q[255&b]+Q[H>>8]+Q[255&H]+Q[d>>8]+Q[255&d]+Q[M>>8]+Q[255&M]+Q[p>>8]+Q[255&p]+Q[l>>8]+Q[255&l]+Q[c>>8]+Q[255&c]+Q[w>>8]+Q[255&w]+Q[a>>8]+Q[255&a]+Q[o>>8]+Q[255&o]+Q[B>>8]+Q[255&B]+Q[C>>8]+Q[255&C],256)}function X(A){var I,t=A.length-3,i=s[512].offset,g=0,e=0|i[31],C=0,n=0|i[30],B=0,r=0|i[29],o=0,E=0|i[28],a=0,h=0|i[27],w=0,D=0|i[26],c=0,u=0|i[25],l=0,y=0|i[24],p=0,F=0|i[23],M=0,m=0|i[22],d=0,G=0|i[21],H=0,U=0|i[20],b=0,L=0|i[19],k=0,N=0|i[18],J=0,S=0|i[17],v=0,R=0|i[16],Y=0,q=0|i[15],x=0,P=0|i[14],X=0,O=0|i[13],Z=0,V=0|i[12],K=0,j=0|i[11],z=0,W=0|i[10],T=0,_=0|i[9],$=0,AA=0|i[8],IA=0,tA=0|i[7],iA=0,gA=0|i[6],eA=0,CA=0|i[5],nA=0,QA=0|i[4],BA=0,rA=0|i[3],oA=0,EA=0|i[2],aA=0,sA=0|i[1],hA=0,fA=0|i[0];for(I=0;I<t;)C=343*n,B=343*r,o=343*E,a=343*h,w=343*D,c=343*u,l=343*y,p=343*F,M=343*m,d=343*G,H=343*U,b=343*L,k=343*N,J=343*S,v=343*R,Y=343*q,x=343*P,X=343*O,Z=343*V,K=343*j,z=343*W,T=343*_,$=343*AA,IA=343*tA,iA=343*gA,eA=343*CA,nA=343*QA,BA=343*rA,oA=343*EA,aA=343*sA,hA=343*fA,z+=(e^=A.charCodeAt(I++))<<8,T+=n<<8,$+=r<<8,IA+=E<<8,iA+=h<<8,eA+=D<<8,nA+=u<<8,BA+=y<<8,oA+=F<<8,aA+=m<<8,e=65535&(g=343*e),fA=(hA+=G<<8)+((aA+=(oA+=(BA+=(nA+=(eA+=(iA+=(IA+=($+=(T+=(z+=(K+=(Z+=(X+=(x+=(Y+=(v+=(J+=(k+=(b+=(H+=(d+=(M+=(p+=(l+=(c+=(w+=(a+=(o+=(B+=(C+=g>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,C=343*(n=65535&C),B=343*(r=65535&B),o=343*(E=65535&o),a=343*(h=65535&a),w=343*(D=65535&w),c=343*(u=65535&c),l=343*(y=65535&l),p=343*(F=65535&p),M=343*(m=65535&M),d=343*(G=65535&d),H=343*(U=65535&H),b=343*(L=65535&b),k=343*(N=65535&k),J=343*(S=65535&J),v=343*(R=65535&v),Y=343*(q=65535&Y),x=343*(P=65535&x),X=343*(O=65535&X),Z=343*(V=65535&Z),K=343*(j=65535&K),z=343*(W=65535&z),T=343*(_=65535&T),$=343*(AA=65535&$),IA=343*(tA=65535&IA),iA=343*(gA=65535&iA),eA=343*(CA=65535&eA),nA=343*(QA=65535&nA),BA=343*(rA=65535&BA),oA=343*(EA=65535&oA),aA=343*(sA=65535&aA),hA=343*fA,z+=(e^=A.charCodeAt(I++))<<8,T+=n<<8,$+=r<<8,IA+=E<<8,iA+=h<<8,eA+=D<<8,nA+=u<<8,BA+=y<<8,oA+=F<<8,aA+=m<<8,e=65535&(g=343*e),fA=(hA+=G<<8)+((aA+=(oA+=(BA+=(nA+=(eA+=(iA+=(IA+=($+=(T+=(z+=(K+=(Z+=(X+=(x+=(Y+=(v+=(J+=(k+=(b+=(H+=(d+=(M+=(p+=(l+=(c+=(w+=(a+=(o+=(B+=(C+=g>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,C=343*(n=65535&C),B=343*(r=65535&B),o=343*(E=65535&o),a=343*(h=65535&a),w=343*(D=65535&w),c=343*(u=65535&c),l=343*(y=65535&l),p=343*(F=65535&p),M=343*(m=65535&M),d=343*(G=65535&d),H=343*(U=65535&H),b=343*(L=65535&b),k=343*(N=65535&k),J=343*(S=65535&J),v=343*(R=65535&v),Y=343*(q=65535&Y),x=343*(P=65535&x),X=343*(O=65535&X),Z=343*(V=65535&Z),K=343*(j=65535&K),z=343*(W=65535&z),T=343*(_=65535&T),$=343*(AA=65535&$),IA=343*(tA=65535&IA),iA=343*(gA=65535&iA),eA=343*(CA=65535&eA),nA=343*(QA=65535&nA),BA=343*(rA=65535&BA),oA=343*(EA=65535&oA),aA=343*(sA=65535&aA),hA=343*fA,z+=(e^=A.charCodeAt(I++))<<8,T+=n<<8,$+=r<<8,IA+=E<<8,iA+=h<<8,eA+=D<<8,nA+=u<<8,BA+=y<<8,oA+=F<<8,aA+=m<<8,e=65535&(g=343*e),fA=(hA+=G<<8)+((aA+=(oA+=(BA+=(nA+=(eA+=(iA+=(IA+=($+=(T+=(z+=(K+=(Z+=(X+=(x+=(Y+=(v+=(J+=(k+=(b+=(H+=(d+=(M+=(p+=(l+=(c+=(w+=(a+=(o+=(B+=(C+=g>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,C=343*(n=65535&C),B=343*(r=65535&B),o=343*(E=65535&o),a=343*(h=65535&a),w=343*(D=65535&w),c=343*(u=65535&c),l=343*(y=65535&l),p=343*(F=65535&p),M=343*(m=65535&M),d=343*(G=65535&d),H=343*(U=65535&H),b=343*(L=65535&b),k=343*(N=65535&k),J=343*(S=65535&J),v=343*(R=65535&v),Y=343*(q=65535&Y),x=343*(P=65535&x),X=343*(O=65535&X),Z=343*(V=65535&Z),K=343*(j=65535&K),z=343*(W=65535&z),T=343*(_=65535&T),$=343*(AA=65535&$),IA=343*(tA=65535&IA),iA=343*(gA=65535&iA),eA=343*(CA=65535&eA),nA=343*(QA=65535&nA),BA=343*(rA=65535&BA),oA=343*(EA=65535&oA),aA=343*(sA=65535&aA),hA=343*fA,z+=(e^=A.charCodeAt(I++))<<8,T+=n<<8,$+=r<<8,IA+=E<<8,iA+=h<<8,eA+=D<<8,nA+=u<<8,BA+=y<<8,oA+=F<<8,aA+=m<<8,hA+=G<<8,e=65535&(g=343*e),n=65535&(C+=g>>>16),r=65535&(B+=C>>>16),E=65535&(o+=B>>>16),h=65535&(a+=o>>>16),D=65535&(w+=a>>>16),u=65535&(c+=w>>>16),y=65535&(l+=c>>>16),F=65535&(p+=l>>>16),m=65535&(M+=p>>>16),G=65535&(d+=M>>>16),U=65535&(H+=d>>>16),L=65535&(b+=H>>>16),N=65535&(k+=b>>>16),S=65535&(J+=k>>>16),R=65535&(v+=J>>>16),q=65535&(Y+=v>>>16),P=65535&(x+=Y>>>16),O=65535&(X+=x>>>16),V=65535&(Z+=X>>>16),j=65535&(K+=Z>>>16),W=65535&(z+=K>>>16),_=65535&(T+=z>>>16),AA=65535&($+=T>>>16),tA=65535&(IA+=$>>>16),gA=65535&(iA+=IA>>>16),CA=65535&(eA+=iA>>>16),QA=65535&(nA+=eA>>>16),rA=65535&(BA+=nA>>>16),EA=65535&(oA+=BA>>>16),fA=hA+((aA+=oA>>>16)>>>16)&65535,sA=65535&aA;for(;I<t+3;)C=343*n,B=343*r,o=343*E,a=343*h,w=343*D,c=343*u,l=343*y,p=343*F,M=343*m,d=343*G,H=343*U,b=343*L,k=343*N,J=343*S,v=343*R,Y=343*q,x=343*P,X=343*O,Z=343*V,K=343*j,z=343*W,T=343*_,$=343*AA,IA=343*tA,iA=343*gA,eA=343*CA,nA=343*QA,BA=343*rA,oA=343*EA,aA=343*sA,hA=343*fA,z+=(e^=A.charCodeAt(I++))<<8,T+=n<<8,$+=r<<8,IA+=E<<8,iA+=h<<8,eA+=D<<8,nA+=u<<8,BA+=y<<8,oA+=F<<8,aA+=m<<8,hA+=G<<8,e=65535&(g=343*e),n=65535&(C+=g>>>16),r=65535&(B+=C>>>16),E=65535&(o+=B>>>16),h=65535&(a+=o>>>16),D=65535&(w+=a>>>16),u=65535&(c+=w>>>16),y=65535&(l+=c>>>16),F=65535&(p+=l>>>16),m=65535&(M+=p>>>16),G=65535&(d+=M>>>16),U=65535&(H+=d>>>16),L=65535&(b+=H>>>16),N=65535&(k+=b>>>16),S=65535&(J+=k>>>16),R=65535&(v+=J>>>16),q=65535&(Y+=v>>>16),P=65535&(x+=Y>>>16),O=65535&(X+=x>>>16),V=65535&(Z+=X>>>16),j=65535&(K+=Z>>>16),W=65535&(z+=K>>>16),_=65535&(T+=z>>>16),AA=65535&($+=T>>>16),tA=65535&(IA+=$>>>16),gA=65535&(iA+=IA>>>16),CA=65535&(eA+=iA>>>16),QA=65535&(nA+=eA>>>16),rA=65535&(BA+=nA>>>16),EA=65535&(oA+=BA>>>16),fA=hA+((aA+=oA>>>16)>>>16)&65535,sA=65535&aA;return f(Q[fA>>8]+Q[255&fA]+Q[sA>>8]+Q[255&sA]+Q[EA>>8]+Q[255&EA]+Q[rA>>8]+Q[255&rA]+Q[QA>>8]+Q[255&QA]+Q[CA>>8]+Q[255&CA]+Q[gA>>8]+Q[255&gA]+Q[tA>>8]+Q[255&tA]+Q[AA>>8]+Q[255&AA]+Q[_>>8]+Q[255&_]+Q[W>>8]+Q[255&W]+Q[j>>8]+Q[255&j]+Q[V>>8]+Q[255&V]+Q[O>>8]+Q[255&O]+Q[P>>8]+Q[255&P]+Q[q>>8]+Q[255&q]+Q[R>>8]+Q[255&R]+Q[S>>8]+Q[255&S]+Q[N>>8]+Q[255&N]+Q[L>>8]+Q[255&L]+Q[U>>8]+Q[255&U]+Q[G>>8]+Q[255&G]+Q[m>>8]+Q[255&m]+Q[F>>8]+Q[255&F]+Q[y>>8]+Q[255&y]+Q[u>>8]+Q[255&u]+Q[D>>8]+Q[255&D]+Q[h>>8]+Q[255&h]+Q[E>>8]+Q[255&E]+Q[r>>8]+Q[255&r]+Q[n>>8]+Q[255&n]+Q[e>>8]+Q[255&e],512)}function O(A){var I,t=A.length-3,i=s[512].offset,g=0,e=0|i[31],C=0,n=0|i[30],B=0,r=0|i[29],o=0,E=0|i[28],a=0,h=0|i[27],w=0,D=0|i[26],c=0,u=0|i[25],l=0,y=0|i[24],p=0,F=0|i[23],M=0,m=0|i[22],d=0,G=0|i[21],H=0,U=0|i[20],b=0,L=0|i[19],k=0,N=0|i[18],J=0,S=0|i[17],v=0,R=0|i[16],Y=0,q=0|i[15],x=0,P=0|i[14],X=0,O=0|i[13],Z=0,V=0|i[12],K=0,j=0|i[11],z=0,W=0|i[10],T=0,_=0|i[9],$=0,AA=0|i[8],IA=0,tA=0|i[7],iA=0,gA=0|i[6],eA=0,CA=0|i[5],nA=0,QA=0|i[4],BA=0,rA=0|i[3],oA=0,EA=0|i[2],aA=0,sA=0|i[1],hA=0,fA=0|i[0];for(I=0;I<t;)C=343*n,B=343*r,o=343*E,a=343*h,w=343*D,c=343*u,l=343*y,p=343*F,M=343*m,d=343*G,H=343*U,b=343*L,k=343*N,J=343*S,v=343*R,Y=343*q,x=343*P,X=343*O,Z=343*V,K=343*j,z=343*W,T=343*_,$=343*AA,IA=343*tA,iA=343*gA,eA=343*CA,nA=343*QA,BA=343*rA,oA=343*EA,aA=343*sA,hA=343*fA,z+=e<<8,T+=n<<8,$+=r<<8,IA+=E<<8,iA+=h<<8,eA+=D<<8,nA+=u<<8,BA+=y<<8,oA+=F<<8,aA+=m<<8,e=65535&(g=343*e),fA=(hA+=G<<8)+((aA+=(oA+=(BA+=(nA+=(eA+=(iA+=(IA+=($+=(T+=(z+=(K+=(Z+=(X+=(x+=(Y+=(v+=(J+=(k+=(b+=(H+=(d+=(M+=(p+=(l+=(c+=(w+=(a+=(o+=(B+=(C+=g>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,C=343*(n=65535&C),B=343*(r=65535&B),o=343*(E=65535&o),a=343*(h=65535&a),w=343*(D=65535&w),c=343*(u=65535&c),l=343*(y=65535&l),p=343*(F=65535&p),M=343*(m=65535&M),d=343*(G=65535&d),H=343*(U=65535&H),b=343*(L=65535&b),k=343*(N=65535&k),J=343*(S=65535&J),v=343*(R=65535&v),Y=343*(q=65535&Y),x=343*(P=65535&x),X=343*(O=65535&X),Z=343*(V=65535&Z),K=343*(j=65535&K),z=343*(W=65535&z),T=343*(_=65535&T),$=343*(AA=65535&$),IA=343*(tA=65535&IA),iA=343*(gA=65535&iA),eA=343*(CA=65535&eA),nA=343*(QA=65535&nA),BA=343*(rA=65535&BA),oA=343*(EA=65535&oA),aA=343*(sA=65535&aA),hA=343*fA,z+=(e^=A.charCodeAt(I++))<<8,T+=n<<8,$+=r<<8,IA+=E<<8,iA+=h<<8,eA+=D<<8,nA+=u<<8,BA+=y<<8,oA+=F<<8,aA+=m<<8,e=65535&(g=343*e),fA=(hA+=G<<8)+((aA+=(oA+=(BA+=(nA+=(eA+=(iA+=(IA+=($+=(T+=(z+=(K+=(Z+=(X+=(x+=(Y+=(v+=(J+=(k+=(b+=(H+=(d+=(M+=(p+=(l+=(c+=(w+=(a+=(o+=(B+=(C+=g>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,C=343*(n=65535&C),B=343*(r=65535&B),o=343*(E=65535&o),a=343*(h=65535&a),w=343*(D=65535&w),c=343*(u=65535&c),l=343*(y=65535&l),p=343*(F=65535&p),M=343*(m=65535&M),d=343*(G=65535&d),H=343*(U=65535&H),b=343*(L=65535&b),k=343*(N=65535&k),J=343*(S=65535&J),v=343*(R=65535&v),Y=343*(q=65535&Y),x=343*(P=65535&x),X=343*(O=65535&X),Z=343*(V=65535&Z),K=343*(j=65535&K),z=343*(W=65535&z),T=343*(_=65535&T),$=343*(AA=65535&$),IA=343*(tA=65535&IA),iA=343*(gA=65535&iA),eA=343*(CA=65535&eA),nA=343*(QA=65535&nA),BA=343*(rA=65535&BA),oA=343*(EA=65535&oA),aA=343*(sA=65535&aA),hA=343*fA,z+=(e^=A.charCodeAt(I++))<<8,T+=n<<8,$+=r<<8,IA+=E<<8,iA+=h<<8,eA+=D<<8,nA+=u<<8,BA+=y<<8,oA+=F<<8,aA+=m<<8,e=65535&(g=343*e),fA=(hA+=G<<8)+((aA+=(oA+=(BA+=(nA+=(eA+=(iA+=(IA+=($+=(T+=(z+=(K+=(Z+=(X+=(x+=(Y+=(v+=(J+=(k+=(b+=(H+=(d+=(M+=(p+=(l+=(c+=(w+=(a+=(o+=(B+=(C+=g>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,C=343*(n=65535&C),B=343*(r=65535&B),o=343*(E=65535&o),a=343*(h=65535&a),w=343*(D=65535&w),c=343*(u=65535&c),l=343*(y=65535&l),p=343*(F=65535&p),M=343*(m=65535&M),d=343*(G=65535&d),H=343*(U=65535&H),b=343*(L=65535&b),k=343*(N=65535&k),J=343*(S=65535&J),v=343*(R=65535&v),Y=343*(q=65535&Y),x=343*(P=65535&x),X=343*(O=65535&X),Z=343*(V=65535&Z),K=343*(j=65535&K),z=343*(W=65535&z),T=343*(_=65535&T),$=343*(AA=65535&$),IA=343*(tA=65535&IA),iA=343*(gA=65535&iA),eA=343*(CA=65535&eA),nA=343*(QA=65535&nA),BA=343*(rA=65535&BA),oA=343*(EA=65535&oA),aA=343*(sA=65535&aA),hA=343*fA,z+=(e^=A.charCodeAt(I++))<<8,T+=n<<8,$+=r<<8,IA+=E<<8,iA+=h<<8,eA+=D<<8,nA+=u<<8,BA+=y<<8,oA+=F<<8,aA+=m<<8,hA+=G<<8,e=65535&(g=343*e),n=65535&(C+=g>>>16),r=65535&(B+=C>>>16),E=65535&(o+=B>>>16),h=65535&(a+=o>>>16),D=65535&(w+=a>>>16),u=65535&(c+=w>>>16),y=65535&(l+=c>>>16),F=65535&(p+=l>>>16),m=65535&(M+=p>>>16),G=65535&(d+=M>>>16),U=65535&(H+=d>>>16),L=65535&(b+=H>>>16),N=65535&(k+=b>>>16),S=65535&(J+=k>>>16),R=65535&(v+=J>>>16),q=65535&(Y+=v>>>16),P=65535&(x+=Y>>>16),O=65535&(X+=x>>>16),V=65535&(Z+=X>>>16),j=65535&(K+=Z>>>16),W=65535&(z+=K>>>16),_=65535&(T+=z>>>16),AA=65535&($+=T>>>16),tA=65535&(IA+=$>>>16),gA=65535&(iA+=IA>>>16),CA=65535&(eA+=iA>>>16),QA=65535&(nA+=eA>>>16),rA=65535&(BA+=nA>>>16),EA=65535&(oA+=BA>>>16),fA=hA+((aA+=oA>>>16)>>>16)&65535,sA=65535&aA,e^=A.charCodeAt(I++);for(;I<t+3;)C=343*n,B=343*r,o=343*E,a=343*h,w=343*D,c=343*u,l=343*y,p=343*F,M=343*m,d=343*G,H=343*U,b=343*L,k=343*N,J=343*S,v=343*R,Y=343*q,x=343*P,X=343*O,Z=343*V,K=343*j,z=343*W,T=343*_,$=343*AA,IA=343*tA,iA=343*gA,eA=343*CA,nA=343*QA,BA=343*rA,oA=343*EA,aA=343*sA,hA=343*fA,z+=e<<8,T+=n<<8,$+=r<<8,IA+=E<<8,iA+=h<<8,eA+=D<<8,nA+=u<<8,BA+=y<<8,oA+=F<<8,aA+=m<<8,hA+=G<<8,e=65535&(g=343*e),n=65535&(C+=g>>>16),r=65535&(B+=C>>>16),E=65535&(o+=B>>>16),h=65535&(a+=o>>>16),D=65535&(w+=a>>>16),u=65535&(c+=w>>>16),y=65535&(l+=c>>>16),F=65535&(p+=l>>>16),m=65535&(M+=p>>>16),G=65535&(d+=M>>>16),U=65535&(H+=d>>>16),L=65535&(b+=H>>>16),N=65535&(k+=b>>>16),S=65535&(J+=k>>>16),R=65535&(v+=J>>>16),q=65535&(Y+=v>>>16),P=65535&(x+=Y>>>16),O=65535&(X+=x>>>16),V=65535&(Z+=X>>>16),j=65535&(K+=Z>>>16),W=65535&(z+=K>>>16),_=65535&(T+=z>>>16),AA=65535&($+=T>>>16),tA=65535&(IA+=$>>>16),gA=65535&(iA+=IA>>>16),CA=65535&(eA+=iA>>>16),QA=65535&(nA+=eA>>>16),rA=65535&(BA+=nA>>>16),EA=65535&(oA+=BA>>>16),fA=hA+((aA+=oA>>>16)>>>16)&65535,sA=65535&aA,e^=A.charCodeAt(I++);return f(Q[fA>>8]+Q[255&fA]+Q[sA>>8]+Q[255&sA]+Q[EA>>8]+Q[255&EA]+Q[rA>>8]+Q[255&rA]+Q[QA>>8]+Q[255&QA]+Q[CA>>8]+Q[255&CA]+Q[gA>>8]+Q[255&gA]+Q[tA>>8]+Q[255&tA]+Q[AA>>8]+Q[255&AA]+Q[_>>8]+Q[255&_]+Q[W>>8]+Q[255&W]+Q[j>>8]+Q[255&j]+Q[V>>8]+Q[255&V]+Q[O>>8]+Q[255&O]+Q[P>>8]+Q[255&P]+Q[q>>8]+Q[255&q]+Q[R>>8]+Q[255&R]+Q[S>>8]+Q[255&S]+Q[N>>8]+Q[255&N]+Q[L>>8]+Q[255&L]+Q[U>>8]+Q[255&U]+Q[G>>8]+Q[255&G]+Q[m>>8]+Q[255&m]+Q[F>>8]+Q[255&F]+Q[y>>8]+Q[255&y]+Q[u>>8]+Q[255&u]+Q[D>>8]+Q[255&D]+Q[h>>8]+Q[255&h]+Q[E>>8]+Q[255&E]+Q[r>>8]+Q[255&r]+Q[n>>8]+Q[255&n]+Q[e>>8]+Q[255&e],512)}function Z(A){var I,t,i=A.length,g=s[512].offset,e=0,C=0|g[31],n=0,B=0|g[30],r=0,o=0|g[29],E=0,a=0|g[28],h=0,w=0|g[27],D=0,c=0|g[26],u=0,l=0|g[25],y=0,p=0|g[24],F=0,M=0|g[23],m=0,d=0|g[22],G=0,H=0|g[21],U=0,b=0|g[20],L=0,k=0|g[19],N=0,J=0|g[18],S=0,v=0|g[17],R=0,Y=0|g[16],q=0,x=0|g[15],P=0,X=0|g[14],O=0,Z=0|g[13],V=0,K=0|g[12],j=0,z=0|g[11],W=0,T=0|g[10],_=0,$=0|g[9],AA=0,IA=0|g[8],tA=0,iA=0|g[7],gA=0,eA=0|g[6],CA=0,nA=0|g[5],QA=0,BA=0|g[4],rA=0,oA=0|g[3],EA=0,aA=0|g[2],sA=0,hA=0|g[1],fA=0,wA=0|g[0];for(t=0;t<i;t++)(I=A.charCodeAt(t))<128?C^=I:I<2048?(n=343*B,r=343*o,E=343*a,h=343*w,D=343*c,u=343*l,y=343*p,F=343*M,m=343*d,G=343*H,U=343*b,L=343*k,N=343*J,S=343*v,R=343*Y,q=343*x,P=343*X,O=343*Z,V=343*K,j=343*z,W=343*T,_=343*$,AA=343*IA,tA=343*iA,gA=343*eA,CA=343*nA,QA=343*BA,rA=343*oA,EA=343*aA,sA=343*hA,fA=343*wA,W+=(C^=I>>6|192)<<8,_+=B<<8,AA+=o<<8,tA+=a<<8,gA+=w<<8,CA+=c<<8,QA+=l<<8,rA+=p<<8,EA+=M<<8,sA+=d<<8,fA+=H<<8,C=65535&(e=343*C),B=65535&(n+=e>>>16),o=65535&(r+=n>>>16),a=65535&(E+=r>>>16),w=65535&(h+=E>>>16),c=65535&(D+=h>>>16),l=65535&(u+=D>>>16),p=65535&(y+=u>>>16),M=65535&(F+=y>>>16),d=65535&(m+=F>>>16),H=65535&(G+=m>>>16),b=65535&(U+=G>>>16),k=65535&(L+=U>>>16),J=65535&(N+=L>>>16),v=65535&(S+=N>>>16),Y=65535&(R+=S>>>16),x=65535&(q+=R>>>16),X=65535&(P+=q>>>16),Z=65535&(O+=P>>>16),K=65535&(V+=O>>>16),z=65535&(j+=V>>>16),T=65535&(W+=j>>>16),$=65535&(_+=W>>>16),IA=65535&(AA+=_>>>16),iA=65535&(tA+=AA>>>16),eA=65535&(gA+=tA>>>16),nA=65535&(CA+=gA>>>16),BA=65535&(QA+=CA>>>16),oA=65535&(rA+=QA>>>16),aA=65535&(EA+=rA>>>16),wA=fA+((sA+=EA>>>16)>>>16)&65535,hA=65535&sA,C^=63&I|128):55296==(64512&I)&&t+1<i&&56320==(64512&A.charCodeAt(t+1))?(n=343*B,r=343*o,E=343*a,h=343*w,D=343*c,u=343*l,y=343*p,F=343*M,m=343*d,G=343*H,U=343*b,L=343*k,N=343*J,S=343*v,R=343*Y,q=343*x,P=343*X,O=343*Z,V=343*K,j=343*z,W=343*T,_=343*$,AA=343*IA,tA=343*iA,gA=343*eA,CA=343*nA,QA=343*BA,rA=343*oA,EA=343*aA,sA=343*hA,fA=343*wA,W+=(C^=(I=65536+((1023&I)<<10)+(1023&A.charCodeAt(++t)))>>18|240)<<8,_+=B<<8,AA+=o<<8,tA+=a<<8,gA+=w<<8,CA+=c<<8,QA+=l<<8,rA+=p<<8,EA+=M<<8,sA+=d<<8,C=65535&(e=343*C),wA=(fA+=H<<8)+((sA+=(EA+=(rA+=(QA+=(CA+=(gA+=(tA+=(AA+=(_+=(W+=(j+=(V+=(O+=(P+=(q+=(R+=(S+=(N+=(L+=(U+=(G+=(m+=(F+=(y+=(u+=(D+=(h+=(E+=(r+=(n+=e>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,n=343*(B=65535&n),r=343*(o=65535&r),E=343*(a=65535&E),h=343*(w=65535&h),D=343*(c=65535&D),u=343*(l=65535&u),y=343*(p=65535&y),F=343*(M=65535&F),m=343*(d=65535&m),G=343*(H=65535&G),U=343*(b=65535&U),L=343*(k=65535&L),N=343*(J=65535&N),S=343*(v=65535&S),R=343*(Y=65535&R),q=343*(x=65535&q),P=343*(X=65535&P),O=343*(Z=65535&O),V=343*(K=65535&V),j=343*(z=65535&j),W=343*(T=65535&W),_=343*($=65535&_),AA=343*(IA=65535&AA),tA=343*(iA=65535&tA),gA=343*(eA=65535&gA),CA=343*(nA=65535&CA),QA=343*(BA=65535&QA),rA=343*(oA=65535&rA),EA=343*(aA=65535&EA),sA=343*(hA=65535&sA),fA=343*wA,W+=(C^=I>>12&63|128)<<8,_+=B<<8,AA+=o<<8,tA+=a<<8,gA+=w<<8,CA+=c<<8,QA+=l<<8,rA+=p<<8,EA+=M<<8,sA+=d<<8,C=65535&(e=343*C),wA=(fA+=H<<8)+((sA+=(EA+=(rA+=(QA+=(CA+=(gA+=(tA+=(AA+=(_+=(W+=(j+=(V+=(O+=(P+=(q+=(R+=(S+=(N+=(L+=(U+=(G+=(m+=(F+=(y+=(u+=(D+=(h+=(E+=(r+=(n+=e>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,n=343*(B=65535&n),r=343*(o=65535&r),E=343*(a=65535&E),h=343*(w=65535&h),D=343*(c=65535&D),u=343*(l=65535&u),y=343*(p=65535&y),F=343*(M=65535&F),m=343*(d=65535&m),G=343*(H=65535&G),U=343*(b=65535&U),L=343*(k=65535&L),N=343*(J=65535&N),S=343*(v=65535&S),R=343*(Y=65535&R),q=343*(x=65535&q),P=343*(X=65535&P),O=343*(Z=65535&O),V=343*(K=65535&V),j=343*(z=65535&j),W=343*(T=65535&W),_=343*($=65535&_),AA=343*(IA=65535&AA),tA=343*(iA=65535&tA),gA=343*(eA=65535&gA),CA=343*(nA=65535&CA),QA=343*(BA=65535&QA),rA=343*(oA=65535&rA),EA=343*(aA=65535&EA),sA=343*(hA=65535&sA),fA=343*wA,W+=(C^=I>>6&63|128)<<8,_+=B<<8,AA+=o<<8,tA+=a<<8,gA+=w<<8,CA+=c<<8,QA+=l<<8,rA+=p<<8,EA+=M<<8,sA+=d<<8,fA+=H<<8,C=65535&(e=343*C),B=65535&(n+=e>>>16),o=65535&(r+=n>>>16),a=65535&(E+=r>>>16),w=65535&(h+=E>>>16),c=65535&(D+=h>>>16),l=65535&(u+=D>>>16),p=65535&(y+=u>>>16),M=65535&(F+=y>>>16),d=65535&(m+=F>>>16),H=65535&(G+=m>>>16),b=65535&(U+=G>>>16),k=65535&(L+=U>>>16),J=65535&(N+=L>>>16),v=65535&(S+=N>>>16),Y=65535&(R+=S>>>16),x=65535&(q+=R>>>16),X=65535&(P+=q>>>16),Z=65535&(O+=P>>>16),K=65535&(V+=O>>>16),z=65535&(j+=V>>>16),T=65535&(W+=j>>>16),$=65535&(_+=W>>>16),IA=65535&(AA+=_>>>16),iA=65535&(tA+=AA>>>16),eA=65535&(gA+=tA>>>16),nA=65535&(CA+=gA>>>16),BA=65535&(QA+=CA>>>16),oA=65535&(rA+=QA>>>16),aA=65535&(EA+=rA>>>16),wA=fA+((sA+=EA>>>16)>>>16)&65535,hA=65535&sA,C^=63&I|128):(n=343*B,r=343*o,E=343*a,h=343*w,D=343*c,u=343*l,y=343*p,F=343*M,m=343*d,G=343*H,U=343*b,L=343*k,N=343*J,S=343*v,R=343*Y,q=343*x,P=343*X,O=343*Z,V=343*K,j=343*z,W=343*T,_=343*$,AA=343*IA,tA=343*iA,gA=343*eA,CA=343*nA,QA=343*BA,rA=343*oA,EA=343*aA,sA=343*hA,fA=343*wA,W+=(C^=I>>12|224)<<8,_+=B<<8,AA+=o<<8,tA+=a<<8,gA+=w<<8,CA+=c<<8,QA+=l<<8,rA+=p<<8,EA+=M<<8,sA+=d<<8,C=65535&(e=343*C),wA=(fA+=H<<8)+((sA+=(EA+=(rA+=(QA+=(CA+=(gA+=(tA+=(AA+=(_+=(W+=(j+=(V+=(O+=(P+=(q+=(R+=(S+=(N+=(L+=(U+=(G+=(m+=(F+=(y+=(u+=(D+=(h+=(E+=(r+=(n+=e>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,n=343*(B=65535&n),r=343*(o=65535&r),E=343*(a=65535&E),h=343*(w=65535&h),D=343*(c=65535&D),u=343*(l=65535&u),y=343*(p=65535&y),F=343*(M=65535&F),m=343*(d=65535&m),G=343*(H=65535&G),U=343*(b=65535&U),L=343*(k=65535&L),N=343*(J=65535&N),S=343*(v=65535&S),R=343*(Y=65535&R),q=343*(x=65535&q),P=343*(X=65535&P),O=343*(Z=65535&O),V=343*(K=65535&V),j=343*(z=65535&j),W=343*(T=65535&W),_=343*($=65535&_),AA=343*(IA=65535&AA),tA=343*(iA=65535&tA),gA=343*(eA=65535&gA),CA=343*(nA=65535&CA),QA=343*(BA=65535&QA),rA=343*(oA=65535&rA),EA=343*(aA=65535&EA),sA=343*(hA=65535&sA),fA=343*wA,W+=(C^=I>>6&63|128)<<8,_+=B<<8,AA+=o<<8,tA+=a<<8,gA+=w<<8,CA+=c<<8,QA+=l<<8,rA+=p<<8,EA+=M<<8,sA+=d<<8,fA+=H<<8,C=65535&(e=343*C),B=65535&(n+=e>>>16),o=65535&(r+=n>>>16),a=65535&(E+=r>>>16),w=65535&(h+=E>>>16),c=65535&(D+=h>>>16),l=65535&(u+=D>>>16),p=65535&(y+=u>>>16),M=65535&(F+=y>>>16),d=65535&(m+=F>>>16),H=65535&(G+=m>>>16),b=65535&(U+=G>>>16),k=65535&(L+=U>>>16),J=65535&(N+=L>>>16),v=65535&(S+=N>>>16),Y=65535&(R+=S>>>16),x=65535&(q+=R>>>16),X=65535&(P+=q>>>16),Z=65535&(O+=P>>>16),K=65535&(V+=O>>>16),z=65535&(j+=V>>>16),T=65535&(W+=j>>>16),$=65535&(_+=W>>>16),IA=65535&(AA+=_>>>16),iA=65535&(tA+=AA>>>16),eA=65535&(gA+=tA>>>16),nA=65535&(CA+=gA>>>16),BA=65535&(QA+=CA>>>16),oA=65535&(rA+=QA>>>16),aA=65535&(EA+=rA>>>16),wA=fA+((sA+=EA>>>16)>>>16)&65535,hA=65535&sA,C^=63&I|128),n=343*B,r=343*o,E=343*a,h=343*w,D=343*c,u=343*l,y=343*p,F=343*M,m=343*d,G=343*H,U=343*b,L=343*k,N=343*J,S=343*v,R=343*Y,q=343*x,P=343*X,O=343*Z,V=343*K,j=343*z,W=343*T,_=343*$,AA=343*IA,tA=343*iA,gA=343*eA,CA=343*nA,QA=343*BA,rA=343*oA,EA=343*aA,sA=343*hA,fA=343*wA,W+=C<<8,_+=B<<8,AA+=o<<8,tA+=a<<8,gA+=w<<8,CA+=c<<8,QA+=l<<8,rA+=p<<8,EA+=M<<8,sA+=d<<8,fA+=H<<8,C=65535&(e=343*C),B=65535&(n+=e>>>16),o=65535&(r+=n>>>16),a=65535&(E+=r>>>16),w=65535&(h+=E>>>16),c=65535&(D+=h>>>16),l=65535&(u+=D>>>16),p=65535&(y+=u>>>16),M=65535&(F+=y>>>16),d=65535&(m+=F>>>16),H=65535&(G+=m>>>16),b=65535&(U+=G>>>16),k=65535&(L+=U>>>16),J=65535&(N+=L>>>16),v=65535&(S+=N>>>16),Y=65535&(R+=S>>>16),x=65535&(q+=R>>>16),X=65535&(P+=q>>>16),Z=65535&(O+=P>>>16),K=65535&(V+=O>>>16),z=65535&(j+=V>>>16),T=65535&(W+=j>>>16),$=65535&(_+=W>>>16),IA=65535&(AA+=_>>>16),iA=65535&(tA+=AA>>>16),eA=65535&(gA+=tA>>>16),nA=65535&(CA+=gA>>>16),BA=65535&(QA+=CA>>>16),oA=65535&(rA+=QA>>>16),aA=65535&(EA+=rA>>>16),wA=fA+((sA+=EA>>>16)>>>16)&65535,hA=65535&sA;return f(Q[wA>>8]+Q[255&wA]+Q[hA>>8]+Q[255&hA]+Q[aA>>8]+Q[255&aA]+Q[oA>>8]+Q[255&oA]+Q[BA>>8]+Q[255&BA]+Q[nA>>8]+Q[255&nA]+Q[eA>>8]+Q[255&eA]+Q[iA>>8]+Q[255&iA]+Q[IA>>8]+Q[255&IA]+Q[$>>8]+Q[255&$]+Q[T>>8]+Q[255&T]+Q[z>>8]+Q[255&z]+Q[K>>8]+Q[255&K]+Q[Z>>8]+Q[255&Z]+Q[X>>8]+Q[255&X]+Q[x>>8]+Q[255&x]+Q[Y>>8]+Q[255&Y]+Q[v>>8]+Q[255&v]+Q[J>>8]+Q[255&J]+Q[k>>8]+Q[255&k]+Q[b>>8]+Q[255&b]+Q[H>>8]+Q[255&H]+Q[d>>8]+Q[255&d]+Q[M>>8]+Q[255&M]+Q[p>>8]+Q[255&p]+Q[l>>8]+Q[255&l]+Q[c>>8]+Q[255&c]+Q[w>>8]+Q[255&w]+Q[a>>8]+Q[255&a]+Q[o>>8]+Q[255&o]+Q[B>>8]+Q[255&B]+Q[C>>8]+Q[255&C],512)}function V(A){var I,t,i=A.length,g=s[512].offset,e=0,C=0|g[31],n=0,B=0|g[30],r=0,o=0|g[29],E=0,a=0|g[28],h=0,w=0|g[27],D=0,c=0|g[26],u=0,l=0|g[25],y=0,p=0|g[24],F=0,M=0|g[23],m=0,d=0|g[22],G=0,H=0|g[21],U=0,b=0|g[20],L=0,k=0|g[19],N=0,J=0|g[18],S=0,v=0|g[17],R=0,Y=0|g[16],q=0,x=0|g[15],P=0,X=0|g[14],O=0,Z=0|g[13],V=0,K=0|g[12],j=0,z=0|g[11],W=0,T=0|g[10],_=0,$=0|g[9],AA=0,IA=0|g[8],tA=0,iA=0|g[7],gA=0,eA=0|g[6],CA=0,nA=0|g[5],QA=0,BA=0|g[4],rA=0,oA=0|g[3],EA=0,aA=0|g[2],sA=0,hA=0|g[1],fA=0,wA=0|g[0];for(t=0;t<i;t++)n=343*B,r=343*o,E=343*a,h=343*w,D=343*c,u=343*l,y=343*p,F=343*M,m=343*d,G=343*H,U=343*b,L=343*k,N=343*J,S=343*v,R=343*Y,q=343*x,P=343*X,O=343*Z,V=343*K,j=343*z,W=343*T,_=343*$,AA=343*IA,tA=343*iA,gA=343*eA,CA=343*nA,QA=343*BA,rA=343*oA,EA=343*aA,sA=343*hA,fA=343*wA,W+=C<<8,_+=B<<8,AA+=o<<8,tA+=a<<8,gA+=w<<8,CA+=c<<8,QA+=l<<8,rA+=p<<8,EA+=M<<8,sA+=d<<8,fA+=H<<8,C=65535&(e=343*C),B=65535&(n+=e>>>16),o=65535&(r+=n>>>16),a=65535&(E+=r>>>16),w=65535&(h+=E>>>16),c=65535&(D+=h>>>16),l=65535&(u+=D>>>16),p=65535&(y+=u>>>16),M=65535&(F+=y>>>16),d=65535&(m+=F>>>16),H=65535&(G+=m>>>16),b=65535&(U+=G>>>16),k=65535&(L+=U>>>16),J=65535&(N+=L>>>16),v=65535&(S+=N>>>16),Y=65535&(R+=S>>>16),x=65535&(q+=R>>>16),X=65535&(P+=q>>>16),Z=65535&(O+=P>>>16),K=65535&(V+=O>>>16),z=65535&(j+=V>>>16),T=65535&(W+=j>>>16),$=65535&(_+=W>>>16),IA=65535&(AA+=_>>>16),iA=65535&(tA+=AA>>>16),eA=65535&(gA+=tA>>>16),nA=65535&(CA+=gA>>>16),BA=65535&(QA+=CA>>>16),oA=65535&(rA+=QA>>>16),aA=65535&(EA+=rA>>>16),wA=fA+((sA+=EA>>>16)>>>16)&65535,hA=65535&sA,(I=A.charCodeAt(t))<128?C^=I:I<2048?(n=343*B,r=343*o,E=343*a,h=343*w,D=343*c,u=343*l,y=343*p,F=343*M,m=343*d,G=343*H,U=343*b,L=343*k,N=343*J,S=343*v,R=343*Y,q=343*x,P=343*X,O=343*Z,V=343*K,j=343*z,W=343*T,_=343*$,AA=343*IA,tA=343*iA,gA=343*eA,CA=343*nA,QA=343*BA,rA=343*oA,EA=343*aA,sA=343*hA,fA=343*wA,W+=(C^=I>>6|192)<<8,_+=B<<8,AA+=o<<8,tA+=a<<8,gA+=w<<8,CA+=c<<8,QA+=l<<8,rA+=p<<8,EA+=M<<8,sA+=d<<8,fA+=H<<8,C=65535&(e=343*C),B=65535&(n+=e>>>16),o=65535&(r+=n>>>16),a=65535&(E+=r>>>16),w=65535&(h+=E>>>16),c=65535&(D+=h>>>16),l=65535&(u+=D>>>16),p=65535&(y+=u>>>16),M=65535&(F+=y>>>16),d=65535&(m+=F>>>16),H=65535&(G+=m>>>16),b=65535&(U+=G>>>16),k=65535&(L+=U>>>16),J=65535&(N+=L>>>16),v=65535&(S+=N>>>16),Y=65535&(R+=S>>>16),x=65535&(q+=R>>>16),X=65535&(P+=q>>>16),Z=65535&(O+=P>>>16),K=65535&(V+=O>>>16),z=65535&(j+=V>>>16),T=65535&(W+=j>>>16),$=65535&(_+=W>>>16),IA=65535&(AA+=_>>>16),iA=65535&(tA+=AA>>>16),eA=65535&(gA+=tA>>>16),nA=65535&(CA+=gA>>>16),BA=65535&(QA+=CA>>>16),oA=65535&(rA+=QA>>>16),aA=65535&(EA+=rA>>>16),wA=fA+((sA+=EA>>>16)>>>16)&65535,hA=65535&sA,C^=63&I|128):55296==(64512&I)&&t+1<i&&56320==(64512&A.charCodeAt(t+1))?(n=343*B,r=343*o,E=343*a,h=343*w,D=343*c,u=343*l,y=343*p,F=343*M,m=343*d,G=343*H,U=343*b,L=343*k,N=343*J,S=343*v,R=343*Y,q=343*x,P=343*X,O=343*Z,V=343*K,j=343*z,W=343*T,_=343*$,AA=343*IA,tA=343*iA,gA=343*eA,CA=343*nA,QA=343*BA,rA=343*oA,EA=343*aA,sA=343*hA,fA=343*wA,W+=(C^=(I=65536+((1023&I)<<10)+(1023&A.charCodeAt(++t)))>>18|240)<<8,_+=B<<8,AA+=o<<8,tA+=a<<8,gA+=w<<8,CA+=c<<8,QA+=l<<8,rA+=p<<8,EA+=M<<8,sA+=d<<8,C=65535&(e=343*C),wA=(fA+=H<<8)+((sA+=(EA+=(rA+=(QA+=(CA+=(gA+=(tA+=(AA+=(_+=(W+=(j+=(V+=(O+=(P+=(q+=(R+=(S+=(N+=(L+=(U+=(G+=(m+=(F+=(y+=(u+=(D+=(h+=(E+=(r+=(n+=e>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,n=343*(B=65535&n),r=343*(o=65535&r),E=343*(a=65535&E),h=343*(w=65535&h),D=343*(c=65535&D),u=343*(l=65535&u),y=343*(p=65535&y),F=343*(M=65535&F),m=343*(d=65535&m),G=343*(H=65535&G),U=343*(b=65535&U),L=343*(k=65535&L),N=343*(J=65535&N),S=343*(v=65535&S),R=343*(Y=65535&R),q=343*(x=65535&q),P=343*(X=65535&P),O=343*(Z=65535&O),V=343*(K=65535&V),j=343*(z=65535&j),W=343*(T=65535&W),_=343*($=65535&_),AA=343*(IA=65535&AA),tA=343*(iA=65535&tA),gA=343*(eA=65535&gA),CA=343*(nA=65535&CA),QA=343*(BA=65535&QA),rA=343*(oA=65535&rA),EA=343*(aA=65535&EA),sA=343*(hA=65535&sA),fA=343*wA,W+=(C^=I>>12&63|128)<<8,_+=B<<8,AA+=o<<8,tA+=a<<8,gA+=w<<8,CA+=c<<8,QA+=l<<8,rA+=p<<8,EA+=M<<8,sA+=d<<8,C=65535&(e=343*C),wA=(fA+=H<<8)+((sA+=(EA+=(rA+=(QA+=(CA+=(gA+=(tA+=(AA+=(_+=(W+=(j+=(V+=(O+=(P+=(q+=(R+=(S+=(N+=(L+=(U+=(G+=(m+=(F+=(y+=(u+=(D+=(h+=(E+=(r+=(n+=e>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,n=343*(B=65535&n),r=343*(o=65535&r),E=343*(a=65535&E),h=343*(w=65535&h),D=343*(c=65535&D),u=343*(l=65535&u),y=343*(p=65535&y),F=343*(M=65535&F),m=343*(d=65535&m),G=343*(H=65535&G),U=343*(b=65535&U),L=343*(k=65535&L),N=343*(J=65535&N),S=343*(v=65535&S),R=343*(Y=65535&R),q=343*(x=65535&q),P=343*(X=65535&P),O=343*(Z=65535&O),V=343*(K=65535&V),j=343*(z=65535&j),W=343*(T=65535&W),_=343*($=65535&_),AA=343*(IA=65535&AA),tA=343*(iA=65535&tA),gA=343*(eA=65535&gA),CA=343*(nA=65535&CA),QA=343*(BA=65535&QA),rA=343*(oA=65535&rA),EA=343*(aA=65535&EA),sA=343*(hA=65535&sA),fA=343*wA,W+=(C^=I>>6&63|128)<<8,_+=B<<8,AA+=o<<8,tA+=a<<8,gA+=w<<8,CA+=c<<8,QA+=l<<8,rA+=p<<8,EA+=M<<8,sA+=d<<8,fA+=H<<8,C=65535&(e=343*C),B=65535&(n+=e>>>16),o=65535&(r+=n>>>16),a=65535&(E+=r>>>16),w=65535&(h+=E>>>16),c=65535&(D+=h>>>16),l=65535&(u+=D>>>16),p=65535&(y+=u>>>16),M=65535&(F+=y>>>16),d=65535&(m+=F>>>16),H=65535&(G+=m>>>16),b=65535&(U+=G>>>16),k=65535&(L+=U>>>16),J=65535&(N+=L>>>16),v=65535&(S+=N>>>16),Y=65535&(R+=S>>>16),x=65535&(q+=R>>>16),X=65535&(P+=q>>>16),Z=65535&(O+=P>>>16),K=65535&(V+=O>>>16),z=65535&(j+=V>>>16),T=65535&(W+=j>>>16),$=65535&(_+=W>>>16),IA=65535&(AA+=_>>>16),iA=65535&(tA+=AA>>>16),eA=65535&(gA+=tA>>>16),nA=65535&(CA+=gA>>>16),BA=65535&(QA+=CA>>>16),oA=65535&(rA+=QA>>>16),aA=65535&(EA+=rA>>>16),wA=fA+((sA+=EA>>>16)>>>16)&65535,hA=65535&sA,C^=63&I|128):(n=343*B,r=343*o,E=343*a,h=343*w,D=343*c,u=343*l,y=343*p,F=343*M,m=343*d,G=343*H,U=343*b,L=343*k,N=343*J,S=343*v,R=343*Y,q=343*x,P=343*X,O=343*Z,V=343*K,j=343*z,W=343*T,_=343*$,AA=343*IA,tA=343*iA,gA=343*eA,CA=343*nA,QA=343*BA,rA=343*oA,EA=343*aA,sA=343*hA,fA=343*wA,W+=(C^=I>>12|224)<<8,_+=B<<8,AA+=o<<8,tA+=a<<8,gA+=w<<8,CA+=c<<8,QA+=l<<8,rA+=p<<8,EA+=M<<8,sA+=d<<8,C=65535&(e=343*C),wA=(fA+=H<<8)+((sA+=(EA+=(rA+=(QA+=(CA+=(gA+=(tA+=(AA+=(_+=(W+=(j+=(V+=(O+=(P+=(q+=(R+=(S+=(N+=(L+=(U+=(G+=(m+=(F+=(y+=(u+=(D+=(h+=(E+=(r+=(n+=e>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,n=343*(B=65535&n),r=343*(o=65535&r),E=343*(a=65535&E),h=343*(w=65535&h),D=343*(c=65535&D),u=343*(l=65535&u),y=343*(p=65535&y),F=343*(M=65535&F),m=343*(d=65535&m),G=343*(H=65535&G),U=343*(b=65535&U),L=343*(k=65535&L),N=343*(J=65535&N),S=343*(v=65535&S),R=343*(Y=65535&R),q=343*(x=65535&q),P=343*(X=65535&P),O=343*(Z=65535&O),V=343*(K=65535&V),j=343*(z=65535&j),W=343*(T=65535&W),_=343*($=65535&_),AA=343*(IA=65535&AA),tA=343*(iA=65535&tA),gA=343*(eA=65535&gA),CA=343*(nA=65535&CA),QA=343*(BA=65535&QA),rA=343*(oA=65535&rA),EA=343*(aA=65535&EA),sA=343*(hA=65535&sA),fA=343*wA,W+=(C^=I>>6&63|128)<<8,_+=B<<8,AA+=o<<8,tA+=a<<8,gA+=w<<8,CA+=c<<8,QA+=l<<8,rA+=p<<8,EA+=M<<8,sA+=d<<8,fA+=H<<8,C=65535&(e=343*C),B=65535&(n+=e>>>16),o=65535&(r+=n>>>16),a=65535&(E+=r>>>16),w=65535&(h+=E>>>16),c=65535&(D+=h>>>16),l=65535&(u+=D>>>16),p=65535&(y+=u>>>16),M=65535&(F+=y>>>16),d=65535&(m+=F>>>16),H=65535&(G+=m>>>16),b=65535&(U+=G>>>16),k=65535&(L+=U>>>16),J=65535&(N+=L>>>16),v=65535&(S+=N>>>16),Y=65535&(R+=S>>>16),x=65535&(q+=R>>>16),X=65535&(P+=q>>>16),Z=65535&(O+=P>>>16),K=65535&(V+=O>>>16),z=65535&(j+=V>>>16),T=65535&(W+=j>>>16),$=65535&(_+=W>>>16),IA=65535&(AA+=_>>>16),iA=65535&(tA+=AA>>>16),eA=65535&(gA+=tA>>>16),nA=65535&(CA+=gA>>>16),BA=65535&(QA+=CA>>>16),oA=65535&(rA+=QA>>>16),aA=65535&(EA+=rA>>>16),wA=fA+((sA+=EA>>>16)>>>16)&65535,hA=65535&sA,C^=63&I|128);return f(Q[wA>>8]+Q[255&wA]+Q[hA>>8]+Q[255&hA]+Q[aA>>8]+Q[255&aA]+Q[oA>>8]+Q[255&oA]+Q[BA>>8]+Q[255&BA]+Q[nA>>8]+Q[255&nA]+Q[eA>>8]+Q[255&eA]+Q[iA>>8]+Q[255&iA]+Q[IA>>8]+Q[255&IA]+Q[$>>8]+Q[255&$]+Q[T>>8]+Q[255&T]+Q[z>>8]+Q[255&z]+Q[K>>8]+Q[255&K]+Q[Z>>8]+Q[255&Z]+Q[X>>8]+Q[255&X]+Q[x>>8]+Q[255&x]+Q[Y>>8]+Q[255&Y]+Q[v>>8]+Q[255&v]+Q[J>>8]+Q[255&J]+Q[k>>8]+Q[255&k]+Q[b>>8]+Q[255&b]+Q[H>>8]+Q[255&H]+Q[d>>8]+Q[255&d]+Q[M>>8]+Q[255&M]+Q[p>>8]+Q[255&p]+Q[l>>8]+Q[255&l]+Q[c>>8]+Q[255&c]+Q[w>>8]+Q[255&w]+Q[a>>8]+Q[255&a]+Q[o>>8]+Q[255&o]+Q[B>>8]+Q[255&B]+Q[C>>8]+Q[255&C],512)}function K(A){var I,t=A.length-3,i=s[1024].offset,g=0,e=0|i[63],C=0,n=0|i[62],B=0,r=0|i[61],o=0,E=0|i[60],a=0,h=0|i[59],w=0,D=0|i[58],c=0,u=0|i[57],l=0,y=0|i[56],p=0,F=0|i[55],M=0,m=0|i[54],d=0,G=0|i[53],H=0,U=0|i[52],b=0,L=0|i[51],k=0,N=0|i[50],J=0,S=0|i[49],v=0,R=0|i[48],Y=0,q=0|i[47],x=0,P=0|i[46],X=0,O=0|i[45],Z=0,V=0|i[44],K=0,j=0|i[43],z=0,W=0|i[42],T=0,_=0|i[41],$=0,AA=0|i[40],IA=0,tA=0|i[39],iA=0,gA=0|i[38],eA=0,CA=0|i[37],nA=0,QA=0|i[36],BA=0,rA=0|i[35],oA=0,EA=0|i[34],aA=0,sA=0|i[33],hA=0,fA=0|i[32],wA=0,DA=0|i[31],cA=0,uA=0|i[30],lA=0,yA=0|i[29],pA=0,FA=0|i[28],MA=0,mA=0|i[27],dA=0,GA=0|i[26],HA=0,UA=0|i[25],bA=0,LA=0|i[24],kA=0,NA=0|i[23],JA=0,SA=0|i[22],vA=0,RA=0|i[21],YA=0,qA=0|i[20],xA=0,PA=0|i[19],XA=0,OA=0|i[18],ZA=0,VA=0|i[17],KA=0,jA=0|i[16],zA=0,WA=0|i[15],TA=0,_A=0|i[14],$A=0,AI=0|i[13],II=0,tI=0|i[12],iI=0,gI=0|i[11],eI=0,CI=0|i[10],nI=0,QI=0|i[9],BI=0,rI=0|i[8],oI=0,EI=0|i[7],aI=0,sI=0|i[6],hI=0,fI=0|i[5],wI=0,DI=0|i[4],cI=0,uI=0|i[3],lI=0,yI=0|i[2],pI=0,FI=0|i[1],MI=0,mI=0|i[0];for(I=0;I<t;)C=397*n,B=397*r,o=397*E,a=397*h,w=397*D,c=397*u,l=397*y,p=397*F,M=397*m,d=397*G,H=397*U,b=397*L,k=397*N,J=397*S,v=397*R,Y=397*q,x=397*P,X=397*O,Z=397*V,K=397*j,z=397*W,T=397*_,$=397*AA,IA=397*tA,iA=397*gA,eA=397*CA,nA=397*QA,BA=397*rA,oA=397*EA,aA=397*sA,hA=397*fA,wA=397*DA,cA=397*uA,lA=397*yA,pA=397*FA,MA=397*mA,dA=397*GA,HA=397*UA,bA=397*LA,kA=397*NA,JA=397*SA,vA=397*RA,YA=397*qA,xA=397*PA,XA=397*OA,ZA=397*VA,KA=397*jA,zA=397*WA,TA=397*_A,$A=397*AI,II=397*tI,iI=397*gI,eI=397*CI,nI=397*QI,BI=397*rI,oI=397*EI,aI=397*sI,hI=397*fI,wI=397*DI,cI=397*uI,lI=397*yI,pI=397*FI,MI=397*mI,vA+=(e^=A.charCodeAt(I++))<<8,YA+=n<<8,xA+=r<<8,XA+=E<<8,ZA+=h<<8,KA+=D<<8,zA+=u<<8,TA+=y<<8,$A+=F<<8,II+=m<<8,iI+=G<<8,eI+=U<<8,nI+=L<<8,BI+=N<<8,oI+=S<<8,aI+=R<<8,hI+=q<<8,wI+=P<<8,cI+=O<<8,lI+=V<<8,pI+=j<<8,e=65535&(g=397*e),mI=(MI+=W<<8)+((pI+=(lI+=(cI+=(wI+=(hI+=(aI+=(oI+=(BI+=(nI+=(eI+=(iI+=(II+=($A+=(TA+=(zA+=(KA+=(ZA+=(XA+=(xA+=(YA+=(vA+=(JA+=(kA+=(bA+=(HA+=(dA+=(MA+=(pA+=(lA+=(cA+=(wA+=(hA+=(aA+=(oA+=(BA+=(nA+=(eA+=(iA+=(IA+=($+=(T+=(z+=(K+=(Z+=(X+=(x+=(Y+=(v+=(J+=(k+=(b+=(H+=(d+=(M+=(p+=(l+=(c+=(w+=(a+=(o+=(B+=(C+=g>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,C=397*(n=65535&C),B=397*(r=65535&B),o=397*(E=65535&o),a=397*(h=65535&a),w=397*(D=65535&w),c=397*(u=65535&c),l=397*(y=65535&l),p=397*(F=65535&p),M=397*(m=65535&M),d=397*(G=65535&d),H=397*(U=65535&H),b=397*(L=65535&b),k=397*(N=65535&k),J=397*(S=65535&J),v=397*(R=65535&v),Y=397*(q=65535&Y),x=397*(P=65535&x),X=397*(O=65535&X),Z=397*(V=65535&Z),K=397*(j=65535&K),z=397*(W=65535&z),T=397*(_=65535&T),$=397*(AA=65535&$),IA=397*(tA=65535&IA),iA=397*(gA=65535&iA),eA=397*(CA=65535&eA),nA=397*(QA=65535&nA),BA=397*(rA=65535&BA),oA=397*(EA=65535&oA),aA=397*(sA=65535&aA),hA=397*(fA=65535&hA),wA=397*(DA=65535&wA),cA=397*(uA=65535&cA),lA=397*(yA=65535&lA),pA=397*(FA=65535&pA),MA=397*(mA=65535&MA),dA=397*(GA=65535&dA),HA=397*(UA=65535&HA),bA=397*(LA=65535&bA),kA=397*(NA=65535&kA),JA=397*(SA=65535&JA),vA=397*(RA=65535&vA),YA=397*(qA=65535&YA),xA=397*(PA=65535&xA),XA=397*(OA=65535&XA),ZA=397*(VA=65535&ZA),KA=397*(jA=65535&KA),zA=397*(WA=65535&zA),TA=397*(_A=65535&TA),$A=397*(AI=65535&$A),II=397*(tI=65535&II),iI=397*(gI=65535&iI),eI=397*(CI=65535&eI),nI=397*(QI=65535&nI),BI=397*(rI=65535&BI),oI=397*(EI=65535&oI),aI=397*(sI=65535&aI),hI=397*(fI=65535&hI),wI=397*(DI=65535&wI),cI=397*(uI=65535&cI),lI=397*(yI=65535&lI),pI=397*(FI=65535&pI),MI=397*mI,vA+=(e^=A.charCodeAt(I++))<<8,YA+=n<<8,xA+=r<<8,XA+=E<<8,ZA+=h<<8,KA+=D<<8,zA+=u<<8,TA+=y<<8,$A+=F<<8,II+=m<<8,iI+=G<<8,eI+=U<<8,nI+=L<<8,BI+=N<<8,oI+=S<<8,aI+=R<<8,hI+=q<<8,wI+=P<<8,cI+=O<<8,lI+=V<<8,pI+=j<<8,e=65535&(g=397*e),mI=(MI+=W<<8)+((pI+=(lI+=(cI+=(wI+=(hI+=(aI+=(oI+=(BI+=(nI+=(eI+=(iI+=(II+=($A+=(TA+=(zA+=(KA+=(ZA+=(XA+=(xA+=(YA+=(vA+=(JA+=(kA+=(bA+=(HA+=(dA+=(MA+=(pA+=(lA+=(cA+=(wA+=(hA+=(aA+=(oA+=(BA+=(nA+=(eA+=(iA+=(IA+=($+=(T+=(z+=(K+=(Z+=(X+=(x+=(Y+=(v+=(J+=(k+=(b+=(H+=(d+=(M+=(p+=(l+=(c+=(w+=(a+=(o+=(B+=(C+=g>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,C=397*(n=65535&C),B=397*(r=65535&B),o=397*(E=65535&o),a=397*(h=65535&a),w=397*(D=65535&w),c=397*(u=65535&c),l=397*(y=65535&l),p=397*(F=65535&p),M=397*(m=65535&M),d=397*(G=65535&d),H=397*(U=65535&H),b=397*(L=65535&b),k=397*(N=65535&k),J=397*(S=65535&J),v=397*(R=65535&v),Y=397*(q=65535&Y),x=397*(P=65535&x),X=397*(O=65535&X),Z=397*(V=65535&Z),K=397*(j=65535&K),z=397*(W=65535&z),T=397*(_=65535&T),$=397*(AA=65535&$),IA=397*(tA=65535&IA),iA=397*(gA=65535&iA),eA=397*(CA=65535&eA),nA=397*(QA=65535&nA),BA=397*(rA=65535&BA),oA=397*(EA=65535&oA),aA=397*(sA=65535&aA),hA=397*(fA=65535&hA),wA=397*(DA=65535&wA),cA=397*(uA=65535&cA),lA=397*(yA=65535&lA),pA=397*(FA=65535&pA),MA=397*(mA=65535&MA),dA=397*(GA=65535&dA),HA=397*(UA=65535&HA),bA=397*(LA=65535&bA),kA=397*(NA=65535&kA),JA=397*(SA=65535&JA),vA=397*(RA=65535&vA),YA=397*(qA=65535&YA),xA=397*(PA=65535&xA),XA=397*(OA=65535&XA),ZA=397*(VA=65535&ZA),KA=397*(jA=65535&KA),zA=397*(WA=65535&zA),TA=397*(_A=65535&TA),$A=397*(AI=65535&$A),II=397*(tI=65535&II),iI=397*(gI=65535&iI),eI=397*(CI=65535&eI),nI=397*(QI=65535&nI),BI=397*(rI=65535&BI),oI=397*(EI=65535&oI),aI=397*(sI=65535&aI),hI=397*(fI=65535&hI),wI=397*(DI=65535&wI),cI=397*(uI=65535&cI),lI=397*(yI=65535&lI),pI=397*(FI=65535&pI),MI=397*mI,vA+=(e^=A.charCodeAt(I++))<<8,YA+=n<<8,xA+=r<<8,XA+=E<<8,ZA+=h<<8,KA+=D<<8,zA+=u<<8,TA+=y<<8,$A+=F<<8,II+=m<<8,iI+=G<<8,eI+=U<<8,nI+=L<<8,BI+=N<<8,oI+=S<<8,aI+=R<<8,hI+=q<<8,wI+=P<<8,cI+=O<<8,lI+=V<<8,pI+=j<<8,e=65535&(g=397*e),mI=(MI+=W<<8)+((pI+=(lI+=(cI+=(wI+=(hI+=(aI+=(oI+=(BI+=(nI+=(eI+=(iI+=(II+=($A+=(TA+=(zA+=(KA+=(ZA+=(XA+=(xA+=(YA+=(vA+=(JA+=(kA+=(bA+=(HA+=(dA+=(MA+=(pA+=(lA+=(cA+=(wA+=(hA+=(aA+=(oA+=(BA+=(nA+=(eA+=(iA+=(IA+=($+=(T+=(z+=(K+=(Z+=(X+=(x+=(Y+=(v+=(J+=(k+=(b+=(H+=(d+=(M+=(p+=(l+=(c+=(w+=(a+=(o+=(B+=(C+=g>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,C=397*(n=65535&C),B=397*(r=65535&B),o=397*(E=65535&o),a=397*(h=65535&a),w=397*(D=65535&w),c=397*(u=65535&c),l=397*(y=65535&l),p=397*(F=65535&p),M=397*(m=65535&M),d=397*(G=65535&d),H=397*(U=65535&H),b=397*(L=65535&b),k=397*(N=65535&k),J=397*(S=65535&J),v=397*(R=65535&v),Y=397*(q=65535&Y),x=397*(P=65535&x),X=397*(O=65535&X),Z=397*(V=65535&Z),K=397*(j=65535&K),z=397*(W=65535&z),T=397*(_=65535&T),$=397*(AA=65535&$),IA=397*(tA=65535&IA),iA=397*(gA=65535&iA),eA=397*(CA=65535&eA),nA=397*(QA=65535&nA),BA=397*(rA=65535&BA),oA=397*(EA=65535&oA),aA=397*(sA=65535&aA),hA=397*(fA=65535&hA),wA=397*(DA=65535&wA),cA=397*(uA=65535&cA),lA=397*(yA=65535&lA),pA=397*(FA=65535&pA),MA=397*(mA=65535&MA),dA=397*(GA=65535&dA),HA=397*(UA=65535&HA),bA=397*(LA=65535&bA),kA=397*(NA=65535&kA),JA=397*(SA=65535&JA),vA=397*(RA=65535&vA),YA=397*(qA=65535&YA),xA=397*(PA=65535&xA),XA=397*(OA=65535&XA),ZA=397*(VA=65535&ZA),KA=397*(jA=65535&KA),zA=397*(WA=65535&zA),TA=397*(_A=65535&TA),$A=397*(AI=65535&$A),II=397*(tI=65535&II),iI=397*(gI=65535&iI),eI=397*(CI=65535&eI),nI=397*(QI=65535&nI),BI=397*(rI=65535&BI),oI=397*(EI=65535&oI),aI=397*(sI=65535&aI),hI=397*(fI=65535&hI),wI=397*(DI=65535&wI),cI=397*(uI=65535&cI),lI=397*(yI=65535&lI),pI=397*(FI=65535&pI),MI=397*mI,vA+=(e^=A.charCodeAt(I++))<<8,YA+=n<<8,xA+=r<<8,XA+=E<<8,ZA+=h<<8,KA+=D<<8,zA+=u<<8,TA+=y<<8,$A+=F<<8,II+=m<<8,iI+=G<<8,eI+=U<<8,nI+=L<<8,BI+=N<<8,oI+=S<<8,aI+=R<<8,hI+=q<<8,wI+=P<<8,cI+=O<<8,lI+=V<<8,pI+=j<<8,MI+=W<<8,e=65535&(g=397*e),n=65535&(C+=g>>>16),r=65535&(B+=C>>>16),E=65535&(o+=B>>>16),h=65535&(a+=o>>>16),D=65535&(w+=a>>>16),u=65535&(c+=w>>>16),y=65535&(l+=c>>>16),F=65535&(p+=l>>>16),m=65535&(M+=p>>>16),G=65535&(d+=M>>>16),U=65535&(H+=d>>>16),L=65535&(b+=H>>>16),N=65535&(k+=b>>>16),S=65535&(J+=k>>>16),R=65535&(v+=J>>>16),q=65535&(Y+=v>>>16),P=65535&(x+=Y>>>16),O=65535&(X+=x>>>16),V=65535&(Z+=X>>>16),j=65535&(K+=Z>>>16),W=65535&(z+=K>>>16),_=65535&(T+=z>>>16),AA=65535&($+=T>>>16),tA=65535&(IA+=$>>>16),gA=65535&(iA+=IA>>>16),CA=65535&(eA+=iA>>>16),QA=65535&(nA+=eA>>>16),rA=65535&(BA+=nA>>>16),EA=65535&(oA+=BA>>>16),sA=65535&(aA+=oA>>>16),fA=65535&(hA+=aA>>>16),DA=65535&(wA+=hA>>>16),uA=65535&(cA+=wA>>>16),yA=65535&(lA+=cA>>>16),FA=65535&(pA+=lA>>>16),mA=65535&(MA+=pA>>>16),GA=65535&(dA+=MA>>>16),UA=65535&(HA+=dA>>>16),LA=65535&(bA+=HA>>>16),NA=65535&(kA+=bA>>>16),SA=65535&(JA+=kA>>>16),RA=65535&(vA+=JA>>>16),qA=65535&(YA+=vA>>>16),PA=65535&(xA+=YA>>>16),OA=65535&(XA+=xA>>>16),VA=65535&(ZA+=XA>>>16),jA=65535&(KA+=ZA>>>16),WA=65535&(zA+=KA>>>16),_A=65535&(TA+=zA>>>16),AI=65535&($A+=TA>>>16),tI=65535&(II+=$A>>>16),gI=65535&(iI+=II>>>16),CI=65535&(eI+=iI>>>16),QI=65535&(nI+=eI>>>16),rI=65535&(BI+=nI>>>16),EI=65535&(oI+=BI>>>16),sI=65535&(aI+=oI>>>16),fI=65535&(hI+=aI>>>16),DI=65535&(wI+=hI>>>16),uI=65535&(cI+=wI>>>16),yI=65535&(lI+=cI>>>16),mI=MI+((pI+=lI>>>16)>>>16)&65535,FI=65535&pI;for(;I<t+3;)C=397*n,B=397*r,o=397*E,a=397*h,w=397*D,c=397*u,l=397*y,p=397*F,M=397*m,d=397*G,H=397*U,b=397*L,k=397*N,J=397*S,v=397*R,Y=397*q,x=397*P,X=397*O,Z=397*V,K=397*j,z=397*W,T=397*_,$=397*AA,IA=397*tA,iA=397*gA,eA=397*CA,nA=397*QA,BA=397*rA,oA=397*EA,aA=397*sA,hA=397*fA,wA=397*DA,cA=397*uA,lA=397*yA,pA=397*FA,MA=397*mA,dA=397*GA,HA=397*UA,bA=397*LA,kA=397*NA,JA=397*SA,vA=397*RA,YA=397*qA,xA=397*PA,XA=397*OA,ZA=397*VA,KA=397*jA,zA=397*WA,TA=397*_A,$A=397*AI,II=397*tI,iI=397*gI,eI=397*CI,nI=397*QI,BI=397*rI,oI=397*EI,aI=397*sI,hI=397*fI,wI=397*DI,cI=397*uI,lI=397*yI,pI=397*FI,MI=397*mI,vA+=(e^=A.charCodeAt(I++))<<8,YA+=n<<8,xA+=r<<8,XA+=E<<8,ZA+=h<<8,KA+=D<<8,zA+=u<<8,TA+=y<<8,$A+=F<<8,II+=m<<8,iI+=G<<8,eI+=U<<8,nI+=L<<8,BI+=N<<8,oI+=S<<8,aI+=R<<8,hI+=q<<8,wI+=P<<8,cI+=O<<8,lI+=V<<8,pI+=j<<8,MI+=W<<8,e=65535&(g=397*e),n=65535&(C+=g>>>16),r=65535&(B+=C>>>16),E=65535&(o+=B>>>16),h=65535&(a+=o>>>16),D=65535&(w+=a>>>16),u=65535&(c+=w>>>16),y=65535&(l+=c>>>16),F=65535&(p+=l>>>16),m=65535&(M+=p>>>16),G=65535&(d+=M>>>16),U=65535&(H+=d>>>16),L=65535&(b+=H>>>16),N=65535&(k+=b>>>16),S=65535&(J+=k>>>16),R=65535&(v+=J>>>16),q=65535&(Y+=v>>>16),P=65535&(x+=Y>>>16),O=65535&(X+=x>>>16),V=65535&(Z+=X>>>16),j=65535&(K+=Z>>>16),W=65535&(z+=K>>>16),_=65535&(T+=z>>>16),AA=65535&($+=T>>>16),tA=65535&(IA+=$>>>16),gA=65535&(iA+=IA>>>16),CA=65535&(eA+=iA>>>16),QA=65535&(nA+=eA>>>16),rA=65535&(BA+=nA>>>16),EA=65535&(oA+=BA>>>16),sA=65535&(aA+=oA>>>16),fA=65535&(hA+=aA>>>16),DA=65535&(wA+=hA>>>16),uA=65535&(cA+=wA>>>16),yA=65535&(lA+=cA>>>16),FA=65535&(pA+=lA>>>16),mA=65535&(MA+=pA>>>16),GA=65535&(dA+=MA>>>16),UA=65535&(HA+=dA>>>16),LA=65535&(bA+=HA>>>16),NA=65535&(kA+=bA>>>16),SA=65535&(JA+=kA>>>16),RA=65535&(vA+=JA>>>16),qA=65535&(YA+=vA>>>16),PA=65535&(xA+=YA>>>16),OA=65535&(XA+=xA>>>16),VA=65535&(ZA+=XA>>>16),jA=65535&(KA+=ZA>>>16),WA=65535&(zA+=KA>>>16),_A=65535&(TA+=zA>>>16),AI=65535&($A+=TA>>>16),tI=65535&(II+=$A>>>16),gI=65535&(iI+=II>>>16),CI=65535&(eI+=iI>>>16),QI=65535&(nI+=eI>>>16),rI=65535&(BI+=nI>>>16),EI=65535&(oI+=BI>>>16),sI=65535&(aI+=oI>>>16),fI=65535&(hI+=aI>>>16),DI=65535&(wI+=hI>>>16),uI=65535&(cI+=wI>>>16),yI=65535&(lI+=cI>>>16),mI=MI+((pI+=lI>>>16)>>>16)&65535,FI=65535&pI;return f(Q[mI>>8]+Q[255&mI]+Q[FI>>8]+Q[255&FI]+Q[yI>>8]+Q[255&yI]+Q[uI>>8]+Q[255&uI]+Q[DI>>8]+Q[255&DI]+Q[fI>>8]+Q[255&fI]+Q[sI>>8]+Q[255&sI]+Q[EI>>8]+Q[255&EI]+Q[rI>>8]+Q[255&rI]+Q[QI>>8]+Q[255&QI]+Q[CI>>8]+Q[255&CI]+Q[gI>>8]+Q[255&gI]+Q[tI>>8]+Q[255&tI]+Q[AI>>8]+Q[255&AI]+Q[_A>>8]+Q[255&_A]+Q[WA>>8]+Q[255&WA]+Q[jA>>8]+Q[255&jA]+Q[VA>>8]+Q[255&VA]+Q[OA>>8]+Q[255&OA]+Q[PA>>8]+Q[255&PA]+Q[qA>>8]+Q[255&qA]+Q[RA>>8]+Q[255&RA]+Q[SA>>8]+Q[255&SA]+Q[NA>>8]+Q[255&NA]+Q[LA>>8]+Q[255&LA]+Q[UA>>8]+Q[255&UA]+Q[GA>>8]+Q[255&GA]+Q[mA>>8]+Q[255&mA]+Q[FA>>8]+Q[255&FA]+Q[yA>>8]+Q[255&yA]+Q[uA>>8]+Q[255&uA]+Q[DA>>8]+Q[255&DA]+Q[fA>>8]+Q[255&fA]+Q[sA>>8]+Q[255&sA]+Q[EA>>8]+Q[255&EA]+Q[rA>>8]+Q[255&rA]+Q[QA>>8]+Q[255&QA]+Q[CA>>8]+Q[255&CA]+Q[gA>>8]+Q[255&gA]+Q[tA>>8]+Q[255&tA]+Q[AA>>8]+Q[255&AA]+Q[_>>8]+Q[255&_]+Q[W>>8]+Q[255&W]+Q[j>>8]+Q[255&j]+Q[V>>8]+Q[255&V]+Q[O>>8]+Q[255&O]+Q[P>>8]+Q[255&P]+Q[q>>8]+Q[255&q]+Q[R>>8]+Q[255&R]+Q[S>>8]+Q[255&S]+Q[N>>8]+Q[255&N]+Q[L>>8]+Q[255&L]+Q[U>>8]+Q[255&U]+Q[G>>8]+Q[255&G]+Q[m>>8]+Q[255&m]+Q[F>>8]+Q[255&F]+Q[y>>8]+Q[255&y]+Q[u>>8]+Q[255&u]+Q[D>>8]+Q[255&D]+Q[h>>8]+Q[255&h]+Q[E>>8]+Q[255&E]+Q[r>>8]+Q[255&r]+Q[n>>8]+Q[255&n]+Q[e>>8]+Q[255&e],1024)}function j(A){var I,t=A.length-3,i=s[1024].offset,g=0,e=0|i[63],C=0,n=0|i[62],B=0,r=0|i[61],o=0,E=0|i[60],a=0,h=0|i[59],w=0,D=0|i[58],c=0,u=0|i[57],l=0,y=0|i[56],p=0,F=0|i[55],M=0,m=0|i[54],d=0,G=0|i[53],H=0,U=0|i[52],b=0,L=0|i[51],k=0,N=0|i[50],J=0,S=0|i[49],v=0,R=0|i[48],Y=0,q=0|i[47],x=0,P=0|i[46],X=0,O=0|i[45],Z=0,V=0|i[44],K=0,j=0|i[43],z=0,W=0|i[42],T=0,_=0|i[41],$=0,AA=0|i[40],IA=0,tA=0|i[39],iA=0,gA=0|i[38],eA=0,CA=0|i[37],nA=0,QA=0|i[36],BA=0,rA=0|i[35],oA=0,EA=0|i[34],aA=0,sA=0|i[33],hA=0,fA=0|i[32],wA=0,DA=0|i[31],cA=0,uA=0|i[30],lA=0,yA=0|i[29],pA=0,FA=0|i[28],MA=0,mA=0|i[27],dA=0,GA=0|i[26],HA=0,UA=0|i[25],bA=0,LA=0|i[24],kA=0,NA=0|i[23],JA=0,SA=0|i[22],vA=0,RA=0|i[21],YA=0,qA=0|i[20],xA=0,PA=0|i[19],XA=0,OA=0|i[18],ZA=0,VA=0|i[17],KA=0,jA=0|i[16],zA=0,WA=0|i[15],TA=0,_A=0|i[14],$A=0,AI=0|i[13],II=0,tI=0|i[12],iI=0,gI=0|i[11],eI=0,CI=0|i[10],nI=0,QI=0|i[9],BI=0,rI=0|i[8],oI=0,EI=0|i[7],aI=0,sI=0|i[6],hI=0,fI=0|i[5],wI=0,DI=0|i[4],cI=0,uI=0|i[3],lI=0,yI=0|i[2],pI=0,FI=0|i[1],MI=0,mI=0|i[0];for(I=0;I<t;)C=397*n,B=397*r,o=397*E,a=397*h,w=397*D,c=397*u,l=397*y,p=397*F,M=397*m,d=397*G,H=397*U,b=397*L,k=397*N,J=397*S,v=397*R,Y=397*q,x=397*P,X=397*O,Z=397*V,K=397*j,z=397*W,T=397*_,$=397*AA,IA=397*tA,iA=397*gA,eA=397*CA,nA=397*QA,BA=397*rA,oA=397*EA,aA=397*sA,hA=397*fA,wA=397*DA,cA=397*uA,lA=397*yA,pA=397*FA,MA=397*mA,dA=397*GA,HA=397*UA,bA=397*LA,kA=397*NA,JA=397*SA,vA=397*RA,YA=397*qA,xA=397*PA,XA=397*OA,ZA=397*VA,KA=397*jA,zA=397*WA,TA=397*_A,$A=397*AI,II=397*tI,iI=397*gI,eI=397*CI,nI=397*QI,BI=397*rI,oI=397*EI,aI=397*sI,hI=397*fI,wI=397*DI,cI=397*uI,lI=397*yI,pI=397*FI,MI=397*mI,vA+=e<<8,YA+=n<<8,xA+=r<<8,XA+=E<<8,ZA+=h<<8,KA+=D<<8,zA+=u<<8,TA+=y<<8,$A+=F<<8,II+=m<<8,iI+=G<<8,eI+=U<<8,nI+=L<<8,BI+=N<<8,oI+=S<<8,aI+=R<<8,hI+=q<<8,wI+=P<<8,cI+=O<<8,lI+=V<<8,pI+=j<<8,e=65535&(g=397*e),mI=(MI+=W<<8)+((pI+=(lI+=(cI+=(wI+=(hI+=(aI+=(oI+=(BI+=(nI+=(eI+=(iI+=(II+=($A+=(TA+=(zA+=(KA+=(ZA+=(XA+=(xA+=(YA+=(vA+=(JA+=(kA+=(bA+=(HA+=(dA+=(MA+=(pA+=(lA+=(cA+=(wA+=(hA+=(aA+=(oA+=(BA+=(nA+=(eA+=(iA+=(IA+=($+=(T+=(z+=(K+=(Z+=(X+=(x+=(Y+=(v+=(J+=(k+=(b+=(H+=(d+=(M+=(p+=(l+=(c+=(w+=(a+=(o+=(B+=(C+=g>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,C=397*(n=65535&C),B=397*(r=65535&B),o=397*(E=65535&o),a=397*(h=65535&a),w=397*(D=65535&w),c=397*(u=65535&c),l=397*(y=65535&l),p=397*(F=65535&p),M=397*(m=65535&M),d=397*(G=65535&d),H=397*(U=65535&H),b=397*(L=65535&b),k=397*(N=65535&k),J=397*(S=65535&J),v=397*(R=65535&v),Y=397*(q=65535&Y),x=397*(P=65535&x),X=397*(O=65535&X),Z=397*(V=65535&Z),K=397*(j=65535&K),z=397*(W=65535&z),T=397*(_=65535&T),$=397*(AA=65535&$),IA=397*(tA=65535&IA),iA=397*(gA=65535&iA),eA=397*(CA=65535&eA),nA=397*(QA=65535&nA),BA=397*(rA=65535&BA),oA=397*(EA=65535&oA),aA=397*(sA=65535&aA),hA=397*(fA=65535&hA),wA=397*(DA=65535&wA),cA=397*(uA=65535&cA),lA=397*(yA=65535&lA),pA=397*(FA=65535&pA),MA=397*(mA=65535&MA),dA=397*(GA=65535&dA),HA=397*(UA=65535&HA),bA=397*(LA=65535&bA),kA=397*(NA=65535&kA),JA=397*(SA=65535&JA),vA=397*(RA=65535&vA),YA=397*(qA=65535&YA),xA=397*(PA=65535&xA),XA=397*(OA=65535&XA),ZA=397*(VA=65535&ZA),KA=397*(jA=65535&KA),zA=397*(WA=65535&zA),TA=397*(_A=65535&TA),$A=397*(AI=65535&$A),II=397*(tI=65535&II),iI=397*(gI=65535&iI),eI=397*(CI=65535&eI),nI=397*(QI=65535&nI),BI=397*(rI=65535&BI),oI=397*(EI=65535&oI),aI=397*(sI=65535&aI),hI=397*(fI=65535&hI),wI=397*(DI=65535&wI),cI=397*(uI=65535&cI),lI=397*(yI=65535&lI),pI=397*(FI=65535&pI),MI=397*mI,vA+=(e^=A.charCodeAt(I++))<<8,YA+=n<<8,xA+=r<<8,XA+=E<<8,ZA+=h<<8,KA+=D<<8,zA+=u<<8,TA+=y<<8,$A+=F<<8,II+=m<<8,iI+=G<<8,eI+=U<<8,nI+=L<<8,BI+=N<<8,oI+=S<<8,aI+=R<<8,hI+=q<<8,wI+=P<<8,cI+=O<<8,lI+=V<<8,pI+=j<<8,e=65535&(g=397*e),mI=(MI+=W<<8)+((pI+=(lI+=(cI+=(wI+=(hI+=(aI+=(oI+=(BI+=(nI+=(eI+=(iI+=(II+=($A+=(TA+=(zA+=(KA+=(ZA+=(XA+=(xA+=(YA+=(vA+=(JA+=(kA+=(bA+=(HA+=(dA+=(MA+=(pA+=(lA+=(cA+=(wA+=(hA+=(aA+=(oA+=(BA+=(nA+=(eA+=(iA+=(IA+=($+=(T+=(z+=(K+=(Z+=(X+=(x+=(Y+=(v+=(J+=(k+=(b+=(H+=(d+=(M+=(p+=(l+=(c+=(w+=(a+=(o+=(B+=(C+=g>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,C=397*(n=65535&C),B=397*(r=65535&B),o=397*(E=65535&o),a=397*(h=65535&a),w=397*(D=65535&w),c=397*(u=65535&c),l=397*(y=65535&l),p=397*(F=65535&p),M=397*(m=65535&M),d=397*(G=65535&d),H=397*(U=65535&H),b=397*(L=65535&b),k=397*(N=65535&k),J=397*(S=65535&J),v=397*(R=65535&v),Y=397*(q=65535&Y),x=397*(P=65535&x),X=397*(O=65535&X),Z=397*(V=65535&Z),K=397*(j=65535&K),z=397*(W=65535&z),T=397*(_=65535&T),$=397*(AA=65535&$),IA=397*(tA=65535&IA),iA=397*(gA=65535&iA),eA=397*(CA=65535&eA),nA=397*(QA=65535&nA),BA=397*(rA=65535&BA),oA=397*(EA=65535&oA),aA=397*(sA=65535&aA),hA=397*(fA=65535&hA),wA=397*(DA=65535&wA),cA=397*(uA=65535&cA),lA=397*(yA=65535&lA),pA=397*(FA=65535&pA),MA=397*(mA=65535&MA),dA=397*(GA=65535&dA),HA=397*(UA=65535&HA),bA=397*(LA=65535&bA),kA=397*(NA=65535&kA),JA=397*(SA=65535&JA),vA=397*(RA=65535&vA),YA=397*(qA=65535&YA),xA=397*(PA=65535&xA),XA=397*(OA=65535&XA),ZA=397*(VA=65535&ZA),KA=397*(jA=65535&KA),zA=397*(WA=65535&zA),TA=397*(_A=65535&TA),$A=397*(AI=65535&$A),II=397*(tI=65535&II),iI=397*(gI=65535&iI),eI=397*(CI=65535&eI),nI=397*(QI=65535&nI),BI=397*(rI=65535&BI),oI=397*(EI=65535&oI),aI=397*(sI=65535&aI),hI=397*(fI=65535&hI),wI=397*(DI=65535&wI),cI=397*(uI=65535&cI),lI=397*(yI=65535&lI),pI=397*(FI=65535&pI),MI=397*mI,vA+=(e^=A.charCodeAt(I++))<<8,YA+=n<<8,xA+=r<<8,XA+=E<<8,ZA+=h<<8,KA+=D<<8,zA+=u<<8,TA+=y<<8,$A+=F<<8,II+=m<<8,iI+=G<<8,eI+=U<<8,nI+=L<<8,BI+=N<<8,oI+=S<<8,aI+=R<<8,hI+=q<<8,wI+=P<<8,cI+=O<<8,lI+=V<<8,pI+=j<<8,e=65535&(g=397*e),mI=(MI+=W<<8)+((pI+=(lI+=(cI+=(wI+=(hI+=(aI+=(oI+=(BI+=(nI+=(eI+=(iI+=(II+=($A+=(TA+=(zA+=(KA+=(ZA+=(XA+=(xA+=(YA+=(vA+=(JA+=(kA+=(bA+=(HA+=(dA+=(MA+=(pA+=(lA+=(cA+=(wA+=(hA+=(aA+=(oA+=(BA+=(nA+=(eA+=(iA+=(IA+=($+=(T+=(z+=(K+=(Z+=(X+=(x+=(Y+=(v+=(J+=(k+=(b+=(H+=(d+=(M+=(p+=(l+=(c+=(w+=(a+=(o+=(B+=(C+=g>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,C=397*(n=65535&C),B=397*(r=65535&B),o=397*(E=65535&o),a=397*(h=65535&a),w=397*(D=65535&w),c=397*(u=65535&c),l=397*(y=65535&l),p=397*(F=65535&p),M=397*(m=65535&M),d=397*(G=65535&d),H=397*(U=65535&H),b=397*(L=65535&b),k=397*(N=65535&k),J=397*(S=65535&J),v=397*(R=65535&v),Y=397*(q=65535&Y),x=397*(P=65535&x),X=397*(O=65535&X),Z=397*(V=65535&Z),K=397*(j=65535&K),z=397*(W=65535&z),T=397*(_=65535&T),$=397*(AA=65535&$),IA=397*(tA=65535&IA),iA=397*(gA=65535&iA),eA=397*(CA=65535&eA),nA=397*(QA=65535&nA),BA=397*(rA=65535&BA),oA=397*(EA=65535&oA),aA=397*(sA=65535&aA),hA=397*(fA=65535&hA),wA=397*(DA=65535&wA),cA=397*(uA=65535&cA),lA=397*(yA=65535&lA),pA=397*(FA=65535&pA),MA=397*(mA=65535&MA),dA=397*(GA=65535&dA),HA=397*(UA=65535&HA),bA=397*(LA=65535&bA),kA=397*(NA=65535&kA),JA=397*(SA=65535&JA),vA=397*(RA=65535&vA),YA=397*(qA=65535&YA),xA=397*(PA=65535&xA),XA=397*(OA=65535&XA),ZA=397*(VA=65535&ZA),KA=397*(jA=65535&KA),zA=397*(WA=65535&zA),TA=397*(_A=65535&TA),$A=397*(AI=65535&$A),II=397*(tI=65535&II),iI=397*(gI=65535&iI),eI=397*(CI=65535&eI),nI=397*(QI=65535&nI),BI=397*(rI=65535&BI),oI=397*(EI=65535&oI),aI=397*(sI=65535&aI),hI=397*(fI=65535&hI),wI=397*(DI=65535&wI),cI=397*(uI=65535&cI),lI=397*(yI=65535&lI),pI=397*(FI=65535&pI),MI=397*mI,vA+=(e^=A.charCodeAt(I++))<<8,YA+=n<<8,xA+=r<<8,XA+=E<<8,ZA+=h<<8,KA+=D<<8,zA+=u<<8,TA+=y<<8,$A+=F<<8,II+=m<<8,iI+=G<<8,eI+=U<<8,nI+=L<<8,BI+=N<<8,oI+=S<<8,aI+=R<<8,hI+=q<<8,wI+=P<<8,cI+=O<<8,lI+=V<<8,pI+=j<<8,MI+=W<<8,e=65535&(g=397*e),n=65535&(C+=g>>>16),r=65535&(B+=C>>>16),E=65535&(o+=B>>>16),h=65535&(a+=o>>>16),D=65535&(w+=a>>>16),u=65535&(c+=w>>>16),y=65535&(l+=c>>>16),F=65535&(p+=l>>>16),m=65535&(M+=p>>>16),G=65535&(d+=M>>>16),U=65535&(H+=d>>>16),L=65535&(b+=H>>>16),N=65535&(k+=b>>>16),S=65535&(J+=k>>>16),R=65535&(v+=J>>>16),q=65535&(Y+=v>>>16),P=65535&(x+=Y>>>16),O=65535&(X+=x>>>16),V=65535&(Z+=X>>>16),j=65535&(K+=Z>>>16),W=65535&(z+=K>>>16),_=65535&(T+=z>>>16),AA=65535&($+=T>>>16),tA=65535&(IA+=$>>>16),gA=65535&(iA+=IA>>>16),CA=65535&(eA+=iA>>>16),QA=65535&(nA+=eA>>>16),rA=65535&(BA+=nA>>>16),EA=65535&(oA+=BA>>>16),sA=65535&(aA+=oA>>>16),fA=65535&(hA+=aA>>>16),DA=65535&(wA+=hA>>>16),uA=65535&(cA+=wA>>>16),yA=65535&(lA+=cA>>>16),FA=65535&(pA+=lA>>>16),mA=65535&(MA+=pA>>>16),GA=65535&(dA+=MA>>>16),UA=65535&(HA+=dA>>>16),LA=65535&(bA+=HA>>>16),NA=65535&(kA+=bA>>>16),SA=65535&(JA+=kA>>>16),RA=65535&(vA+=JA>>>16),qA=65535&(YA+=vA>>>16),PA=65535&(xA+=YA>>>16),OA=65535&(XA+=xA>>>16),VA=65535&(ZA+=XA>>>16),jA=65535&(KA+=ZA>>>16),WA=65535&(zA+=KA>>>16),_A=65535&(TA+=zA>>>16),AI=65535&($A+=TA>>>16),tI=65535&(II+=$A>>>16),gI=65535&(iI+=II>>>16),CI=65535&(eI+=iI>>>16),QI=65535&(nI+=eI>>>16),rI=65535&(BI+=nI>>>16),EI=65535&(oI+=BI>>>16),sI=65535&(aI+=oI>>>16),fI=65535&(hI+=aI>>>16),DI=65535&(wI+=hI>>>16),uI=65535&(cI+=wI>>>16),yI=65535&(lI+=cI>>>16),mI=MI+((pI+=lI>>>16)>>>16)&65535,FI=65535&pI,e^=A.charCodeAt(I++);for(;I<t+3;)C=397*n,B=397*r,o=397*E,a=397*h,w=397*D,c=397*u,l=397*y,p=397*F,M=397*m,d=397*G,H=397*U,b=397*L,k=397*N,J=397*S,v=397*R,Y=397*q,x=397*P,X=397*O,Z=397*V,K=397*j,z=397*W,T=397*_,$=397*AA,IA=397*tA,iA=397*gA,eA=397*CA,nA=397*QA,BA=397*rA,oA=397*EA,aA=397*sA,hA=397*fA,wA=397*DA,cA=397*uA,lA=397*yA,pA=397*FA,MA=397*mA,dA=397*GA,HA=397*UA,bA=397*LA,kA=397*NA,JA=397*SA,vA=397*RA,YA=397*qA,xA=397*PA,XA=397*OA,ZA=397*VA,KA=397*jA,zA=397*WA,TA=397*_A,$A=397*AI,II=397*tI,iI=397*gI,eI=397*CI,nI=397*QI,BI=397*rI,oI=397*EI,aI=397*sI,hI=397*fI,wI=397*DI,cI=397*uI,lI=397*yI,pI=397*FI,MI=397*mI,vA+=e<<8,YA+=n<<8,xA+=r<<8,XA+=E<<8,ZA+=h<<8,KA+=D<<8,zA+=u<<8,TA+=y<<8,$A+=F<<8,II+=m<<8,iI+=G<<8,eI+=U<<8,nI+=L<<8,BI+=N<<8,oI+=S<<8,aI+=R<<8,hI+=q<<8,wI+=P<<8,cI+=O<<8,lI+=V<<8,pI+=j<<8,MI+=W<<8,e=65535&(g=397*e),n=65535&(C+=g>>>16),r=65535&(B+=C>>>16),E=65535&(o+=B>>>16),h=65535&(a+=o>>>16),D=65535&(w+=a>>>16),u=65535&(c+=w>>>16),y=65535&(l+=c>>>16),F=65535&(p+=l>>>16),m=65535&(M+=p>>>16),G=65535&(d+=M>>>16),U=65535&(H+=d>>>16),L=65535&(b+=H>>>16),N=65535&(k+=b>>>16),S=65535&(J+=k>>>16),R=65535&(v+=J>>>16),q=65535&(Y+=v>>>16),P=65535&(x+=Y>>>16),O=65535&(X+=x>>>16),V=65535&(Z+=X>>>16),j=65535&(K+=Z>>>16),W=65535&(z+=K>>>16),_=65535&(T+=z>>>16),AA=65535&($+=T>>>16),tA=65535&(IA+=$>>>16),gA=65535&(iA+=IA>>>16),CA=65535&(eA+=iA>>>16),QA=65535&(nA+=eA>>>16),rA=65535&(BA+=nA>>>16),EA=65535&(oA+=BA>>>16),sA=65535&(aA+=oA>>>16),fA=65535&(hA+=aA>>>16),DA=65535&(wA+=hA>>>16),uA=65535&(cA+=wA>>>16),yA=65535&(lA+=cA>>>16),FA=65535&(pA+=lA>>>16),mA=65535&(MA+=pA>>>16),GA=65535&(dA+=MA>>>16),UA=65535&(HA+=dA>>>16),LA=65535&(bA+=HA>>>16),NA=65535&(kA+=bA>>>16),SA=65535&(JA+=kA>>>16),RA=65535&(vA+=JA>>>16),qA=65535&(YA+=vA>>>16),PA=65535&(xA+=YA>>>16),OA=65535&(XA+=xA>>>16),VA=65535&(ZA+=XA>>>16),jA=65535&(KA+=ZA>>>16),WA=65535&(zA+=KA>>>16),_A=65535&(TA+=zA>>>16),AI=65535&($A+=TA>>>16),tI=65535&(II+=$A>>>16),gI=65535&(iI+=II>>>16),CI=65535&(eI+=iI>>>16),QI=65535&(nI+=eI>>>16),rI=65535&(BI+=nI>>>16),EI=65535&(oI+=BI>>>16),sI=65535&(aI+=oI>>>16),fI=65535&(hI+=aI>>>16),DI=65535&(wI+=hI>>>16),uI=65535&(cI+=wI>>>16),yI=65535&(lI+=cI>>>16),mI=MI+((pI+=lI>>>16)>>>16)&65535,FI=65535&pI,e^=A.charCodeAt(I++);return f(Q[mI>>8]+Q[255&mI]+Q[FI>>8]+Q[255&FI]+Q[yI>>8]+Q[255&yI]+Q[uI>>8]+Q[255&uI]+Q[DI>>8]+Q[255&DI]+Q[fI>>8]+Q[255&fI]+Q[sI>>8]+Q[255&sI]+Q[EI>>8]+Q[255&EI]+Q[rI>>8]+Q[255&rI]+Q[QI>>8]+Q[255&QI]+Q[CI>>8]+Q[255&CI]+Q[gI>>8]+Q[255&gI]+Q[tI>>8]+Q[255&tI]+Q[AI>>8]+Q[255&AI]+Q[_A>>8]+Q[255&_A]+Q[WA>>8]+Q[255&WA]+Q[jA>>8]+Q[255&jA]+Q[VA>>8]+Q[255&VA]+Q[OA>>8]+Q[255&OA]+Q[PA>>8]+Q[255&PA]+Q[qA>>8]+Q[255&qA]+Q[RA>>8]+Q[255&RA]+Q[SA>>8]+Q[255&SA]+Q[NA>>8]+Q[255&NA]+Q[LA>>8]+Q[255&LA]+Q[UA>>8]+Q[255&UA]+Q[GA>>8]+Q[255&GA]+Q[mA>>8]+Q[255&mA]+Q[FA>>8]+Q[255&FA]+Q[yA>>8]+Q[255&yA]+Q[uA>>8]+Q[255&uA]+Q[DA>>8]+Q[255&DA]+Q[fA>>8]+Q[255&fA]+Q[sA>>8]+Q[255&sA]+Q[EA>>8]+Q[255&EA]+Q[rA>>8]+Q[255&rA]+Q[QA>>8]+Q[255&QA]+Q[CA>>8]+Q[255&CA]+Q[gA>>8]+Q[255&gA]+Q[tA>>8]+Q[255&tA]+Q[AA>>8]+Q[255&AA]+Q[_>>8]+Q[255&_]+Q[W>>8]+Q[255&W]+Q[j>>8]+Q[255&j]+Q[V>>8]+Q[255&V]+Q[O>>8]+Q[255&O]+Q[P>>8]+Q[255&P]+Q[q>>8]+Q[255&q]+Q[R>>8]+Q[255&R]+Q[S>>8]+Q[255&S]+Q[N>>8]+Q[255&N]+Q[L>>8]+Q[255&L]+Q[U>>8]+Q[255&U]+Q[G>>8]+Q[255&G]+Q[m>>8]+Q[255&m]+Q[F>>8]+Q[255&F]+Q[y>>8]+Q[255&y]+Q[u>>8]+Q[255&u]+Q[D>>8]+Q[255&D]+Q[h>>8]+Q[255&h]+Q[E>>8]+Q[255&E]+Q[r>>8]+Q[255&r]+Q[n>>8]+Q[255&n]+Q[e>>8]+Q[255&e],1024)}function z(A){var I,t,i=A.length,g=s[1024].offset,e=0,C=0|g[63],n=0,B=0|g[62],r=0,o=0|g[61],E=0,a=0|g[60],h=0,w=0|g[59],D=0,c=0|g[58],u=0,l=0|g[57],y=0,p=0|g[56],F=0,M=0|g[55],m=0,d=0|g[54],G=0,H=0|g[53],U=0,b=0|g[52],L=0,k=0|g[51],N=0,J=0|g[50],S=0,v=0|g[49],R=0,Y=0|g[48],q=0,x=0|g[47],P=0,X=0|g[46],O=0,Z=0|g[45],V=0,K=0|g[44],j=0,z=0|g[43],W=0,T=0|g[42],_=0,$=0|g[41],AA=0,IA=0|g[40],tA=0,iA=0|g[39],gA=0,eA=0|g[38],CA=0,nA=0|g[37],QA=0,BA=0|g[36],rA=0,oA=0|g[35],EA=0,aA=0|g[34],sA=0,hA=0|g[33],fA=0,wA=0|g[32],DA=0,cA=0|g[31],uA=0,lA=0|g[30],yA=0,pA=0|g[29],FA=0,MA=0|g[28],mA=0,dA=0|g[27],GA=0,HA=0|g[26],UA=0,bA=0|g[25],LA=0,kA=0|g[24],NA=0,JA=0|g[23],SA=0,vA=0|g[22],RA=0,YA=0|g[21],qA=0,xA=0|g[20],PA=0,XA=0|g[19],OA=0,ZA=0|g[18],VA=0,KA=0|g[17],jA=0,zA=0|g[16],WA=0,TA=0|g[15],_A=0,$A=0|g[14],AI=0,II=0|g[13],tI=0,iI=0|g[12],gI=0,eI=0|g[11],CI=0,nI=0|g[10],QI=0,BI=0|g[9],rI=0,oI=0|g[8],EI=0,aI=0|g[7],sI=0,hI=0|g[6],fI=0,wI=0|g[5],DI=0,cI=0|g[4],uI=0,lI=0|g[3],yI=0,pI=0|g[2],FI=0,MI=0|g[1],mI=0,dI=0|g[0];for(t=0;t<i;t++)(I=A.charCodeAt(t))<128?C^=I:I<2048?(n=397*B,r=397*o,E=397*a,h=397*w,D=397*c,u=397*l,y=397*p,F=397*M,m=397*d,G=397*H,U=397*b,L=397*k,N=397*J,S=397*v,R=397*Y,q=397*x,P=397*X,O=397*Z,V=397*K,j=397*z,W=397*T,_=397*$,AA=397*IA,tA=397*iA,gA=397*eA,CA=397*nA,QA=397*BA,rA=397*oA,EA=397*aA,sA=397*hA,fA=397*wA,DA=397*cA,uA=397*lA,yA=397*pA,FA=397*MA,mA=397*dA,GA=397*HA,UA=397*bA,LA=397*kA,NA=397*JA,SA=397*vA,RA=397*YA,qA=397*xA,PA=397*XA,OA=397*ZA,VA=397*KA,jA=397*zA,WA=397*TA,_A=397*$A,AI=397*II,tI=397*iI,gI=397*eI,CI=397*nI,QI=397*BI,rI=397*oI,EI=397*aI,sI=397*hI,fI=397*wI,DI=397*cI,uI=397*lI,yI=397*pI,FI=397*MI,mI=397*dI,RA+=(C^=I>>6|192)<<8,qA+=B<<8,PA+=o<<8,OA+=a<<8,VA+=w<<8,jA+=c<<8,WA+=l<<8,_A+=p<<8,AI+=M<<8,tI+=d<<8,gI+=H<<8,CI+=b<<8,QI+=k<<8,rI+=J<<8,EI+=v<<8,sI+=Y<<8,fI+=x<<8,DI+=X<<8,uI+=Z<<8,yI+=K<<8,FI+=z<<8,mI+=T<<8,C=65535&(e=397*C),B=65535&(n+=e>>>16),o=65535&(r+=n>>>16),a=65535&(E+=r>>>16),w=65535&(h+=E>>>16),c=65535&(D+=h>>>16),l=65535&(u+=D>>>16),p=65535&(y+=u>>>16),M=65535&(F+=y>>>16),d=65535&(m+=F>>>16),H=65535&(G+=m>>>16),b=65535&(U+=G>>>16),k=65535&(L+=U>>>16),J=65535&(N+=L>>>16),v=65535&(S+=N>>>16),Y=65535&(R+=S>>>16),x=65535&(q+=R>>>16),X=65535&(P+=q>>>16),Z=65535&(O+=P>>>16),K=65535&(V+=O>>>16),z=65535&(j+=V>>>16),T=65535&(W+=j>>>16),$=65535&(_+=W>>>16),IA=65535&(AA+=_>>>16),iA=65535&(tA+=AA>>>16),eA=65535&(gA+=tA>>>16),nA=65535&(CA+=gA>>>16),BA=65535&(QA+=CA>>>16),oA=65535&(rA+=QA>>>16),aA=65535&(EA+=rA>>>16),hA=65535&(sA+=EA>>>16),wA=65535&(fA+=sA>>>16),cA=65535&(DA+=fA>>>16),lA=65535&(uA+=DA>>>16),pA=65535&(yA+=uA>>>16),MA=65535&(FA+=yA>>>16),dA=65535&(mA+=FA>>>16),HA=65535&(GA+=mA>>>16),bA=65535&(UA+=GA>>>16),kA=65535&(LA+=UA>>>16),JA=65535&(NA+=LA>>>16),vA=65535&(SA+=NA>>>16),YA=65535&(RA+=SA>>>16),xA=65535&(qA+=RA>>>16),XA=65535&(PA+=qA>>>16),ZA=65535&(OA+=PA>>>16),KA=65535&(VA+=OA>>>16),zA=65535&(jA+=VA>>>16),TA=65535&(WA+=jA>>>16),$A=65535&(_A+=WA>>>16),II=65535&(AI+=_A>>>16),iI=65535&(tI+=AI>>>16),eI=65535&(gI+=tI>>>16),nI=65535&(CI+=gI>>>16),BI=65535&(QI+=CI>>>16),oI=65535&(rI+=QI>>>16),aI=65535&(EI+=rI>>>16),hI=65535&(sI+=EI>>>16),wI=65535&(fI+=sI>>>16),cI=65535&(DI+=fI>>>16),lI=65535&(uI+=DI>>>16),pI=65535&(yI+=uI>>>16),dI=mI+((FI+=yI>>>16)>>>16)&65535,MI=65535&FI,C^=63&I|128):55296==(64512&I)&&t+1<i&&56320==(64512&A.charCodeAt(t+1))?(n=397*B,r=397*o,E=397*a,h=397*w,D=397*c,u=397*l,y=397*p,F=397*M,m=397*d,G=397*H,U=397*b,L=397*k,N=397*J,S=397*v,R=397*Y,q=397*x,P=397*X,O=397*Z,V=397*K,j=397*z,W=397*T,_=397*$,AA=397*IA,tA=397*iA,gA=397*eA,CA=397*nA,QA=397*BA,rA=397*oA,EA=397*aA,sA=397*hA,fA=397*wA,DA=397*cA,uA=397*lA,yA=397*pA,FA=397*MA,mA=397*dA,GA=397*HA,UA=397*bA,LA=397*kA,NA=397*JA,SA=397*vA,RA=397*YA,qA=397*xA,PA=397*XA,OA=397*ZA,VA=397*KA,jA=397*zA,WA=397*TA,_A=397*$A,AI=397*II,tI=397*iI,gI=397*eI,CI=397*nI,QI=397*BI,rI=397*oI,EI=397*aI,sI=397*hI,fI=397*wI,DI=397*cI,uI=397*lI,yI=397*pI,FI=397*MI,mI=397*dI,RA+=(C^=(I=65536+((1023&I)<<10)+(1023&A.charCodeAt(++t)))>>18|240)<<8,qA+=B<<8,PA+=o<<8,OA+=a<<8,VA+=w<<8,jA+=c<<8,WA+=l<<8,_A+=p<<8,AI+=M<<8,tI+=d<<8,gI+=H<<8,CI+=b<<8,QI+=k<<8,rI+=J<<8,EI+=v<<8,sI+=Y<<8,fI+=x<<8,DI+=X<<8,uI+=Z<<8,yI+=K<<8,FI+=z<<8,C=65535&(e=397*C),dI=(mI+=T<<8)+((FI+=(yI+=(uI+=(DI+=(fI+=(sI+=(EI+=(rI+=(QI+=(CI+=(gI+=(tI+=(AI+=(_A+=(WA+=(jA+=(VA+=(OA+=(PA+=(qA+=(RA+=(SA+=(NA+=(LA+=(UA+=(GA+=(mA+=(FA+=(yA+=(uA+=(DA+=(fA+=(sA+=(EA+=(rA+=(QA+=(CA+=(gA+=(tA+=(AA+=(_+=(W+=(j+=(V+=(O+=(P+=(q+=(R+=(S+=(N+=(L+=(U+=(G+=(m+=(F+=(y+=(u+=(D+=(h+=(E+=(r+=(n+=e>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,n=397*(B=65535&n),r=397*(o=65535&r),E=397*(a=65535&E),h=397*(w=65535&h),D=397*(c=65535&D),u=397*(l=65535&u),y=397*(p=65535&y),F=397*(M=65535&F),m=397*(d=65535&m),G=397*(H=65535&G),U=397*(b=65535&U),L=397*(k=65535&L),N=397*(J=65535&N),S=397*(v=65535&S),R=397*(Y=65535&R),q=397*(x=65535&q),P=397*(X=65535&P),O=397*(Z=65535&O),V=397*(K=65535&V),j=397*(z=65535&j),W=397*(T=65535&W),_=397*($=65535&_),AA=397*(IA=65535&AA),tA=397*(iA=65535&tA),gA=397*(eA=65535&gA),CA=397*(nA=65535&CA),QA=397*(BA=65535&QA),rA=397*(oA=65535&rA),EA=397*(aA=65535&EA),sA=397*(hA=65535&sA),fA=397*(wA=65535&fA),DA=397*(cA=65535&DA),uA=397*(lA=65535&uA),yA=397*(pA=65535&yA),FA=397*(MA=65535&FA),mA=397*(dA=65535&mA),GA=397*(HA=65535&GA),UA=397*(bA=65535&UA),LA=397*(kA=65535&LA),NA=397*(JA=65535&NA),SA=397*(vA=65535&SA),RA=397*(YA=65535&RA),qA=397*(xA=65535&qA),PA=397*(XA=65535&PA),OA=397*(ZA=65535&OA),VA=397*(KA=65535&VA),jA=397*(zA=65535&jA),WA=397*(TA=65535&WA),_A=397*($A=65535&_A),AI=397*(II=65535&AI),tI=397*(iI=65535&tI),gI=397*(eI=65535&gI),CI=397*(nI=65535&CI),QI=397*(BI=65535&QI),rI=397*(oI=65535&rI),EI=397*(aI=65535&EI),sI=397*(hI=65535&sI),fI=397*(wI=65535&fI),DI=397*(cI=65535&DI),uI=397*(lI=65535&uI),yI=397*(pI=65535&yI),FI=397*(MI=65535&FI),mI=397*dI,RA+=(C^=I>>12&63|128)<<8,qA+=B<<8,PA+=o<<8,OA+=a<<8,VA+=w<<8,jA+=c<<8,WA+=l<<8,_A+=p<<8,AI+=M<<8,tI+=d<<8,gI+=H<<8,CI+=b<<8,QI+=k<<8,rI+=J<<8,EI+=v<<8,sI+=Y<<8,fI+=x<<8,DI+=X<<8,uI+=Z<<8,yI+=K<<8,FI+=z<<8,C=65535&(e=397*C),dI=(mI+=T<<8)+((FI+=(yI+=(uI+=(DI+=(fI+=(sI+=(EI+=(rI+=(QI+=(CI+=(gI+=(tI+=(AI+=(_A+=(WA+=(jA+=(VA+=(OA+=(PA+=(qA+=(RA+=(SA+=(NA+=(LA+=(UA+=(GA+=(mA+=(FA+=(yA+=(uA+=(DA+=(fA+=(sA+=(EA+=(rA+=(QA+=(CA+=(gA+=(tA+=(AA+=(_+=(W+=(j+=(V+=(O+=(P+=(q+=(R+=(S+=(N+=(L+=(U+=(G+=(m+=(F+=(y+=(u+=(D+=(h+=(E+=(r+=(n+=e>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,n=397*(B=65535&n),r=397*(o=65535&r),E=397*(a=65535&E),h=397*(w=65535&h),D=397*(c=65535&D),u=397*(l=65535&u),y=397*(p=65535&y),F=397*(M=65535&F),m=397*(d=65535&m),G=397*(H=65535&G),U=397*(b=65535&U),L=397*(k=65535&L),N=397*(J=65535&N),S=397*(v=65535&S),R=397*(Y=65535&R),q=397*(x=65535&q),P=397*(X=65535&P),O=397*(Z=65535&O),V=397*(K=65535&V),j=397*(z=65535&j),W=397*(T=65535&W),_=397*($=65535&_),AA=397*(IA=65535&AA),tA=397*(iA=65535&tA),gA=397*(eA=65535&gA),CA=397*(nA=65535&CA),QA=397*(BA=65535&QA),rA=397*(oA=65535&rA),EA=397*(aA=65535&EA),sA=397*(hA=65535&sA),fA=397*(wA=65535&fA),DA=397*(cA=65535&DA),uA=397*(lA=65535&uA),yA=397*(pA=65535&yA),FA=397*(MA=65535&FA),mA=397*(dA=65535&mA),GA=397*(HA=65535&GA),UA=397*(bA=65535&UA),LA=397*(kA=65535&LA),NA=397*(JA=65535&NA),SA=397*(vA=65535&SA),RA=397*(YA=65535&RA),qA=397*(xA=65535&qA),PA=397*(XA=65535&PA),OA=397*(ZA=65535&OA),VA=397*(KA=65535&VA),jA=397*(zA=65535&jA),WA=397*(TA=65535&WA),_A=397*($A=65535&_A),AI=397*(II=65535&AI),tI=397*(iI=65535&tI),gI=397*(eI=65535&gI),CI=397*(nI=65535&CI),QI=397*(BI=65535&QI),rI=397*(oI=65535&rI),EI=397*(aI=65535&EI),sI=397*(hI=65535&sI),fI=397*(wI=65535&fI),DI=397*(cI=65535&DI),uI=397*(lI=65535&uI),yI=397*(pI=65535&yI),FI=397*(MI=65535&FI),mI=397*dI,RA+=(C^=I>>6&63|128)<<8,qA+=B<<8,PA+=o<<8,OA+=a<<8,VA+=w<<8,jA+=c<<8,WA+=l<<8,_A+=p<<8,AI+=M<<8,tI+=d<<8,gI+=H<<8,CI+=b<<8,QI+=k<<8,rI+=J<<8,EI+=v<<8,sI+=Y<<8,fI+=x<<8,DI+=X<<8,uI+=Z<<8,yI+=K<<8,FI+=z<<8,mI+=T<<8,C=65535&(e=397*C),B=65535&(n+=e>>>16),o=65535&(r+=n>>>16),a=65535&(E+=r>>>16),w=65535&(h+=E>>>16),c=65535&(D+=h>>>16),l=65535&(u+=D>>>16),p=65535&(y+=u>>>16),M=65535&(F+=y>>>16),d=65535&(m+=F>>>16),H=65535&(G+=m>>>16),b=65535&(U+=G>>>16),k=65535&(L+=U>>>16),J=65535&(N+=L>>>16),v=65535&(S+=N>>>16),Y=65535&(R+=S>>>16),x=65535&(q+=R>>>16),X=65535&(P+=q>>>16),Z=65535&(O+=P>>>16),K=65535&(V+=O>>>16),z=65535&(j+=V>>>16),T=65535&(W+=j>>>16),$=65535&(_+=W>>>16),IA=65535&(AA+=_>>>16),iA=65535&(tA+=AA>>>16),eA=65535&(gA+=tA>>>16),nA=65535&(CA+=gA>>>16),BA=65535&(QA+=CA>>>16),oA=65535&(rA+=QA>>>16),aA=65535&(EA+=rA>>>16),hA=65535&(sA+=EA>>>16),wA=65535&(fA+=sA>>>16),cA=65535&(DA+=fA>>>16),lA=65535&(uA+=DA>>>16),pA=65535&(yA+=uA>>>16),MA=65535&(FA+=yA>>>16),dA=65535&(mA+=FA>>>16),HA=65535&(GA+=mA>>>16),bA=65535&(UA+=GA>>>16),kA=65535&(LA+=UA>>>16),JA=65535&(NA+=LA>>>16),vA=65535&(SA+=NA>>>16),YA=65535&(RA+=SA>>>16),xA=65535&(qA+=RA>>>16),XA=65535&(PA+=qA>>>16),ZA=65535&(OA+=PA>>>16),KA=65535&(VA+=OA>>>16),zA=65535&(jA+=VA>>>16),TA=65535&(WA+=jA>>>16),$A=65535&(_A+=WA>>>16),II=65535&(AI+=_A>>>16),iI=65535&(tI+=AI>>>16),eI=65535&(gI+=tI>>>16),nI=65535&(CI+=gI>>>16),BI=65535&(QI+=CI>>>16),oI=65535&(rI+=QI>>>16),aI=65535&(EI+=rI>>>16),hI=65535&(sI+=EI>>>16),wI=65535&(fI+=sI>>>16),cI=65535&(DI+=fI>>>16),lI=65535&(uI+=DI>>>16),pI=65535&(yI+=uI>>>16),dI=mI+((FI+=yI>>>16)>>>16)&65535,MI=65535&FI,C^=63&I|128):(n=397*B,r=397*o,E=397*a,h=397*w,D=397*c,u=397*l,y=397*p,F=397*M,m=397*d,G=397*H,U=397*b,L=397*k,N=397*J,S=397*v,R=397*Y,q=397*x,P=397*X,O=397*Z,V=397*K,j=397*z,W=397*T,_=397*$,AA=397*IA,tA=397*iA,gA=397*eA,CA=397*nA,QA=397*BA,rA=397*oA,EA=397*aA,sA=397*hA,fA=397*wA,DA=397*cA,uA=397*lA,yA=397*pA,FA=397*MA,mA=397*dA,GA=397*HA,UA=397*bA,LA=397*kA,NA=397*JA,SA=397*vA,RA=397*YA,qA=397*xA,PA=397*XA,OA=397*ZA,VA=397*KA,jA=397*zA,WA=397*TA,_A=397*$A,AI=397*II,tI=397*iI,gI=397*eI,CI=397*nI,QI=397*BI,rI=397*oI,EI=397*aI,sI=397*hI,fI=397*wI,DI=397*cI,uI=397*lI,yI=397*pI,FI=397*MI,mI=397*dI,RA+=(C^=I>>12|224)<<8,qA+=B<<8,PA+=o<<8,OA+=a<<8,VA+=w<<8,jA+=c<<8,WA+=l<<8,_A+=p<<8,AI+=M<<8,tI+=d<<8,gI+=H<<8,CI+=b<<8,QI+=k<<8,rI+=J<<8,EI+=v<<8,sI+=Y<<8,fI+=x<<8,DI+=X<<8,uI+=Z<<8,yI+=K<<8,FI+=z<<8,C=65535&(e=397*C),dI=(mI+=T<<8)+((FI+=(yI+=(uI+=(DI+=(fI+=(sI+=(EI+=(rI+=(QI+=(CI+=(gI+=(tI+=(AI+=(_A+=(WA+=(jA+=(VA+=(OA+=(PA+=(qA+=(RA+=(SA+=(NA+=(LA+=(UA+=(GA+=(mA+=(FA+=(yA+=(uA+=(DA+=(fA+=(sA+=(EA+=(rA+=(QA+=(CA+=(gA+=(tA+=(AA+=(_+=(W+=(j+=(V+=(O+=(P+=(q+=(R+=(S+=(N+=(L+=(U+=(G+=(m+=(F+=(y+=(u+=(D+=(h+=(E+=(r+=(n+=e>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,n=397*(B=65535&n),r=397*(o=65535&r),E=397*(a=65535&E),h=397*(w=65535&h),D=397*(c=65535&D),u=397*(l=65535&u),y=397*(p=65535&y),F=397*(M=65535&F),m=397*(d=65535&m),G=397*(H=65535&G),U=397*(b=65535&U),L=397*(k=65535&L),N=397*(J=65535&N),S=397*(v=65535&S),R=397*(Y=65535&R),q=397*(x=65535&q),P=397*(X=65535&P),O=397*(Z=65535&O),V=397*(K=65535&V),j=397*(z=65535&j),W=397*(T=65535&W),_=397*($=65535&_),AA=397*(IA=65535&AA),tA=397*(iA=65535&tA),gA=397*(eA=65535&gA),CA=397*(nA=65535&CA),QA=397*(BA=65535&QA),rA=397*(oA=65535&rA),EA=397*(aA=65535&EA),sA=397*(hA=65535&sA),fA=397*(wA=65535&fA),DA=397*(cA=65535&DA),uA=397*(lA=65535&uA),yA=397*(pA=65535&yA),FA=397*(MA=65535&FA),mA=397*(dA=65535&mA),GA=397*(HA=65535&GA),UA=397*(bA=65535&UA),LA=397*(kA=65535&LA),NA=397*(JA=65535&NA),SA=397*(vA=65535&SA),RA=397*(YA=65535&RA),qA=397*(xA=65535&qA),PA=397*(XA=65535&PA),OA=397*(ZA=65535&OA),VA=397*(KA=65535&VA),jA=397*(zA=65535&jA),WA=397*(TA=65535&WA),_A=397*($A=65535&_A),AI=397*(II=65535&AI),tI=397*(iI=65535&tI),gI=397*(eI=65535&gI),CI=397*(nI=65535&CI),QI=397*(BI=65535&QI),rI=397*(oI=65535&rI),EI=397*(aI=65535&EI),sI=397*(hI=65535&sI),fI=397*(wI=65535&fI),DI=397*(cI=65535&DI),uI=397*(lI=65535&uI),yI=397*(pI=65535&yI),FI=397*(MI=65535&FI),mI=397*dI,RA+=(C^=I>>6&63|128)<<8,qA+=B<<8,PA+=o<<8,OA+=a<<8,VA+=w<<8,jA+=c<<8,WA+=l<<8,_A+=p<<8,AI+=M<<8,tI+=d<<8,gI+=H<<8,CI+=b<<8,QI+=k<<8,rI+=J<<8,EI+=v<<8,sI+=Y<<8,fI+=x<<8,DI+=X<<8,uI+=Z<<8,yI+=K<<8,FI+=z<<8,mI+=T<<8,C=65535&(e=397*C),B=65535&(n+=e>>>16),o=65535&(r+=n>>>16),a=65535&(E+=r>>>16),w=65535&(h+=E>>>16),c=65535&(D+=h>>>16),l=65535&(u+=D>>>16),p=65535&(y+=u>>>16),M=65535&(F+=y>>>16),d=65535&(m+=F>>>16),H=65535&(G+=m>>>16),b=65535&(U+=G>>>16),k=65535&(L+=U>>>16),J=65535&(N+=L>>>16),v=65535&(S+=N>>>16),Y=65535&(R+=S>>>16),x=65535&(q+=R>>>16),X=65535&(P+=q>>>16),Z=65535&(O+=P>>>16),K=65535&(V+=O>>>16),z=65535&(j+=V>>>16),T=65535&(W+=j>>>16),$=65535&(_+=W>>>16),IA=65535&(AA+=_>>>16),iA=65535&(tA+=AA>>>16),eA=65535&(gA+=tA>>>16),nA=65535&(CA+=gA>>>16),BA=65535&(QA+=CA>>>16),oA=65535&(rA+=QA>>>16),aA=65535&(EA+=rA>>>16),hA=65535&(sA+=EA>>>16),wA=65535&(fA+=sA>>>16),cA=65535&(DA+=fA>>>16),lA=65535&(uA+=DA>>>16),pA=65535&(yA+=uA>>>16),MA=65535&(FA+=yA>>>16),dA=65535&(mA+=FA>>>16),HA=65535&(GA+=mA>>>16),bA=65535&(UA+=GA>>>16),kA=65535&(LA+=UA>>>16),JA=65535&(NA+=LA>>>16),vA=65535&(SA+=NA>>>16),YA=65535&(RA+=SA>>>16),xA=65535&(qA+=RA>>>16),XA=65535&(PA+=qA>>>16),ZA=65535&(OA+=PA>>>16),KA=65535&(VA+=OA>>>16),zA=65535&(jA+=VA>>>16),TA=65535&(WA+=jA>>>16),$A=65535&(_A+=WA>>>16),II=65535&(AI+=_A>>>16),iI=65535&(tI+=AI>>>16),eI=65535&(gI+=tI>>>16),nI=65535&(CI+=gI>>>16),BI=65535&(QI+=CI>>>16),oI=65535&(rI+=QI>>>16),aI=65535&(EI+=rI>>>16),hI=65535&(sI+=EI>>>16),wI=65535&(fI+=sI>>>16),cI=65535&(DI+=fI>>>16),lI=65535&(uI+=DI>>>16),pI=65535&(yI+=uI>>>16),dI=mI+((FI+=yI>>>16)>>>16)&65535,MI=65535&FI,C^=63&I|128),n=397*B,r=397*o,E=397*a,h=397*w,D=397*c,u=397*l,y=397*p,F=397*M,m=397*d,G=397*H,U=397*b,L=397*k,N=397*J,S=397*v,R=397*Y,q=397*x,P=397*X,O=397*Z,V=397*K,j=397*z,W=397*T,_=397*$,AA=397*IA,tA=397*iA,gA=397*eA,CA=397*nA,QA=397*BA,rA=397*oA,EA=397*aA,sA=397*hA,fA=397*wA,DA=397*cA,uA=397*lA,yA=397*pA,FA=397*MA,mA=397*dA,GA=397*HA,UA=397*bA,LA=397*kA,NA=397*JA,SA=397*vA,RA=397*YA,qA=397*xA,PA=397*XA,OA=397*ZA,VA=397*KA,jA=397*zA,WA=397*TA,_A=397*$A,AI=397*II,tI=397*iI,gI=397*eI,CI=397*nI,QI=397*BI,rI=397*oI,EI=397*aI,sI=397*hI,fI=397*wI,DI=397*cI,uI=397*lI,yI=397*pI,FI=397*MI,mI=397*dI,RA+=C<<8,qA+=B<<8,PA+=o<<8,OA+=a<<8,VA+=w<<8,jA+=c<<8,WA+=l<<8,_A+=p<<8,AI+=M<<8,tI+=d<<8,gI+=H<<8,CI+=b<<8,QI+=k<<8,rI+=J<<8,EI+=v<<8,sI+=Y<<8,fI+=x<<8,DI+=X<<8,uI+=Z<<8,yI+=K<<8,FI+=z<<8,mI+=T<<8,C=65535&(e=397*C),B=65535&(n+=e>>>16),o=65535&(r+=n>>>16),a=65535&(E+=r>>>16),w=65535&(h+=E>>>16),c=65535&(D+=h>>>16),l=65535&(u+=D>>>16),p=65535&(y+=u>>>16),M=65535&(F+=y>>>16),d=65535&(m+=F>>>16),H=65535&(G+=m>>>16),b=65535&(U+=G>>>16),k=65535&(L+=U>>>16),J=65535&(N+=L>>>16),v=65535&(S+=N>>>16),Y=65535&(R+=S>>>16),x=65535&(q+=R>>>16),X=65535&(P+=q>>>16),Z=65535&(O+=P>>>16),K=65535&(V+=O>>>16),z=65535&(j+=V>>>16),T=65535&(W+=j>>>16),$=65535&(_+=W>>>16),IA=65535&(AA+=_>>>16),iA=65535&(tA+=AA>>>16),eA=65535&(gA+=tA>>>16),nA=65535&(CA+=gA>>>16),BA=65535&(QA+=CA>>>16),oA=65535&(rA+=QA>>>16),aA=65535&(EA+=rA>>>16),hA=65535&(sA+=EA>>>16),wA=65535&(fA+=sA>>>16),cA=65535&(DA+=fA>>>16),lA=65535&(uA+=DA>>>16),pA=65535&(yA+=uA>>>16),MA=65535&(FA+=yA>>>16),dA=65535&(mA+=FA>>>16),HA=65535&(GA+=mA>>>16),bA=65535&(UA+=GA>>>16),kA=65535&(LA+=UA>>>16),JA=65535&(NA+=LA>>>16),vA=65535&(SA+=NA>>>16),YA=65535&(RA+=SA>>>16),xA=65535&(qA+=RA>>>16),XA=65535&(PA+=qA>>>16),ZA=65535&(OA+=PA>>>16),KA=65535&(VA+=OA>>>16),zA=65535&(jA+=VA>>>16),TA=65535&(WA+=jA>>>16),$A=65535&(_A+=WA>>>16),II=65535&(AI+=_A>>>16),iI=65535&(tI+=AI>>>16),eI=65535&(gI+=tI>>>16),nI=65535&(CI+=gI>>>16),BI=65535&(QI+=CI>>>16),oI=65535&(rI+=QI>>>16),aI=65535&(EI+=rI>>>16),hI=65535&(sI+=EI>>>16),wI=65535&(fI+=sI>>>16),cI=65535&(DI+=fI>>>16),lI=65535&(uI+=DI>>>16),pI=65535&(yI+=uI>>>16),dI=mI+((FI+=yI>>>16)>>>16)&65535,MI=65535&FI;return f(Q[dI>>8]+Q[255&dI]+Q[MI>>8]+Q[255&MI]+Q[pI>>8]+Q[255&pI]+Q[lI>>8]+Q[255&lI]+Q[cI>>8]+Q[255&cI]+Q[wI>>8]+Q[255&wI]+Q[hI>>8]+Q[255&hI]+Q[aI>>8]+Q[255&aI]+Q[oI>>8]+Q[255&oI]+Q[BI>>8]+Q[255&BI]+Q[nI>>8]+Q[255&nI]+Q[eI>>8]+Q[255&eI]+Q[iI>>8]+Q[255&iI]+Q[II>>8]+Q[255&II]+Q[$A>>8]+Q[255&$A]+Q[TA>>8]+Q[255&TA]+Q[zA>>8]+Q[255&zA]+Q[KA>>8]+Q[255&KA]+Q[ZA>>8]+Q[255&ZA]+Q[XA>>8]+Q[255&XA]+Q[xA>>8]+Q[255&xA]+Q[YA>>8]+Q[255&YA]+Q[vA>>8]+Q[255&vA]+Q[JA>>8]+Q[255&JA]+Q[kA>>8]+Q[255&kA]+Q[bA>>8]+Q[255&bA]+Q[HA>>8]+Q[255&HA]+Q[dA>>8]+Q[255&dA]+Q[MA>>8]+Q[255&MA]+Q[pA>>8]+Q[255&pA]+Q[lA>>8]+Q[255&lA]+Q[cA>>8]+Q[255&cA]+Q[wA>>8]+Q[255&wA]+Q[hA>>8]+Q[255&hA]+Q[aA>>8]+Q[255&aA]+Q[oA>>8]+Q[255&oA]+Q[BA>>8]+Q[255&BA]+Q[nA>>8]+Q[255&nA]+Q[eA>>8]+Q[255&eA]+Q[iA>>8]+Q[255&iA]+Q[IA>>8]+Q[255&IA]+Q[$>>8]+Q[255&$]+Q[T>>8]+Q[255&T]+Q[z>>8]+Q[255&z]+Q[K>>8]+Q[255&K]+Q[Z>>8]+Q[255&Z]+Q[X>>8]+Q[255&X]+Q[x>>8]+Q[255&x]+Q[Y>>8]+Q[255&Y]+Q[v>>8]+Q[255&v]+Q[J>>8]+Q[255&J]+Q[k>>8]+Q[255&k]+Q[b>>8]+Q[255&b]+Q[H>>8]+Q[255&H]+Q[d>>8]+Q[255&d]+Q[M>>8]+Q[255&M]+Q[p>>8]+Q[255&p]+Q[l>>8]+Q[255&l]+Q[c>>8]+Q[255&c]+Q[w>>8]+Q[255&w]+Q[a>>8]+Q[255&a]+Q[o>>8]+Q[255&o]+Q[B>>8]+Q[255&B]+Q[C>>8]+Q[255&C],1024)}function W(A){var I,t,i=A.length,g=s[1024].offset,e=0,C=0|g[63],n=0,B=0|g[62],r=0,o=0|g[61],E=0,a=0|g[60],h=0,w=0|g[59],D=0,c=0|g[58],u=0,l=0|g[57],y=0,p=0|g[56],F=0,M=0|g[55],m=0,d=0|g[54],G=0,H=0|g[53],U=0,b=0|g[52],L=0,k=0|g[51],N=0,J=0|g[50],S=0,v=0|g[49],R=0,Y=0|g[48],q=0,x=0|g[47],P=0,X=0|g[46],O=0,Z=0|g[45],V=0,K=0|g[44],j=0,z=0|g[43],W=0,T=0|g[42],_=0,$=0|g[41],AA=0,IA=0|g[40],tA=0,iA=0|g[39],gA=0,eA=0|g[38],CA=0,nA=0|g[37],QA=0,BA=0|g[36],rA=0,oA=0|g[35],EA=0,aA=0|g[34],sA=0,hA=0|g[33],fA=0,wA=0|g[32],DA=0,cA=0|g[31],uA=0,lA=0|g[30],yA=0,pA=0|g[29],FA=0,MA=0|g[28],mA=0,dA=0|g[27],GA=0,HA=0|g[26],UA=0,bA=0|g[25],LA=0,kA=0|g[24],NA=0,JA=0|g[23],SA=0,vA=0|g[22],RA=0,YA=0|g[21],qA=0,xA=0|g[20],PA=0,XA=0|g[19],OA=0,ZA=0|g[18],VA=0,KA=0|g[17],jA=0,zA=0|g[16],WA=0,TA=0|g[15],_A=0,$A=0|g[14],AI=0,II=0|g[13],tI=0,iI=0|g[12],gI=0,eI=0|g[11],CI=0,nI=0|g[10],QI=0,BI=0|g[9],rI=0,oI=0|g[8],EI=0,aI=0|g[7],sI=0,hI=0|g[6],fI=0,wI=0|g[5],DI=0,cI=0|g[4],uI=0,lI=0|g[3],yI=0,pI=0|g[2],FI=0,MI=0|g[1],mI=0,dI=0|g[0];for(t=0;t<i;t++)n=397*B,r=397*o,E=397*a,h=397*w,D=397*c,u=397*l,y=397*p,F=397*M,m=397*d,G=397*H,U=397*b,L=397*k,N=397*J,S=397*v,R=397*Y,q=397*x,P=397*X,O=397*Z,V=397*K,j=397*z,W=397*T,_=397*$,AA=397*IA,tA=397*iA,gA=397*eA,CA=397*nA,QA=397*BA,rA=397*oA,EA=397*aA,sA=397*hA,fA=397*wA,DA=397*cA,uA=397*lA,yA=397*pA,FA=397*MA,mA=397*dA,GA=397*HA,UA=397*bA,LA=397*kA,NA=397*JA,SA=397*vA,RA=397*YA,qA=397*xA,PA=397*XA,OA=397*ZA,VA=397*KA,jA=397*zA,WA=397*TA,_A=397*$A,AI=397*II,tI=397*iI,gI=397*eI,CI=397*nI,QI=397*BI,rI=397*oI,EI=397*aI,sI=397*hI,fI=397*wI,DI=397*cI,uI=397*lI,yI=397*pI,FI=397*MI,mI=397*dI,RA+=C<<8,qA+=B<<8,PA+=o<<8,OA+=a<<8,VA+=w<<8,jA+=c<<8,WA+=l<<8,_A+=p<<8,AI+=M<<8,tI+=d<<8,gI+=H<<8,CI+=b<<8,QI+=k<<8,rI+=J<<8,EI+=v<<8,sI+=Y<<8,fI+=x<<8,DI+=X<<8,uI+=Z<<8,yI+=K<<8,FI+=z<<8,mI+=T<<8,C=65535&(e=397*C),B=65535&(n+=e>>>16),o=65535&(r+=n>>>16),a=65535&(E+=r>>>16),w=65535&(h+=E>>>16),c=65535&(D+=h>>>16),l=65535&(u+=D>>>16),p=65535&(y+=u>>>16),M=65535&(F+=y>>>16),d=65535&(m+=F>>>16),H=65535&(G+=m>>>16),b=65535&(U+=G>>>16),k=65535&(L+=U>>>16),J=65535&(N+=L>>>16),v=65535&(S+=N>>>16),Y=65535&(R+=S>>>16),x=65535&(q+=R>>>16),X=65535&(P+=q>>>16),Z=65535&(O+=P>>>16),K=65535&(V+=O>>>16),z=65535&(j+=V>>>16),T=65535&(W+=j>>>16),$=65535&(_+=W>>>16),IA=65535&(AA+=_>>>16),iA=65535&(tA+=AA>>>16),eA=65535&(gA+=tA>>>16),nA=65535&(CA+=gA>>>16),BA=65535&(QA+=CA>>>16),oA=65535&(rA+=QA>>>16),aA=65535&(EA+=rA>>>16),hA=65535&(sA+=EA>>>16),wA=65535&(fA+=sA>>>16),cA=65535&(DA+=fA>>>16),lA=65535&(uA+=DA>>>16),pA=65535&(yA+=uA>>>16),MA=65535&(FA+=yA>>>16),dA=65535&(mA+=FA>>>16),HA=65535&(GA+=mA>>>16),bA=65535&(UA+=GA>>>16),kA=65535&(LA+=UA>>>16),JA=65535&(NA+=LA>>>16),vA=65535&(SA+=NA>>>16),YA=65535&(RA+=SA>>>16),xA=65535&(qA+=RA>>>16),XA=65535&(PA+=qA>>>16),ZA=65535&(OA+=PA>>>16),KA=65535&(VA+=OA>>>16),zA=65535&(jA+=VA>>>16),TA=65535&(WA+=jA>>>16),$A=65535&(_A+=WA>>>16),II=65535&(AI+=_A>>>16),iI=65535&(tI+=AI>>>16),eI=65535&(gI+=tI>>>16),nI=65535&(CI+=gI>>>16),BI=65535&(QI+=CI>>>16),oI=65535&(rI+=QI>>>16),aI=65535&(EI+=rI>>>16),hI=65535&(sI+=EI>>>16),wI=65535&(fI+=sI>>>16),cI=65535&(DI+=fI>>>16),lI=65535&(uI+=DI>>>16),pI=65535&(yI+=uI>>>16),dI=mI+((FI+=yI>>>16)>>>16)&65535,MI=65535&FI,(I=A.charCodeAt(t))<128?C^=I:I<2048?(n=397*B,r=397*o,E=397*a,h=397*w,D=397*c,u=397*l,y=397*p,F=397*M,m=397*d,G=397*H,U=397*b,L=397*k,N=397*J,S=397*v,R=397*Y,q=397*x,P=397*X,O=397*Z,V=397*K,j=397*z,W=397*T,_=397*$,AA=397*IA,tA=397*iA,gA=397*eA,CA=397*nA,QA=397*BA,rA=397*oA,EA=397*aA,sA=397*hA,fA=397*wA,DA=397*cA,uA=397*lA,yA=397*pA,FA=397*MA,mA=397*dA,GA=397*HA,UA=397*bA,LA=397*kA,NA=397*JA,SA=397*vA,RA=397*YA,qA=397*xA,PA=397*XA,OA=397*ZA,VA=397*KA,jA=397*zA,WA=397*TA,_A=397*$A,AI=397*II,tI=397*iI,gI=397*eI,CI=397*nI,QI=397*BI,rI=397*oI,EI=397*aI,sI=397*hI,fI=397*wI,DI=397*cI,uI=397*lI,yI=397*pI,FI=397*MI,mI=397*dI,RA+=(C^=I>>6|192)<<8,qA+=B<<8,PA+=o<<8,OA+=a<<8,VA+=w<<8,jA+=c<<8,WA+=l<<8,_A+=p<<8,AI+=M<<8,tI+=d<<8,gI+=H<<8,CI+=b<<8,QI+=k<<8,rI+=J<<8,EI+=v<<8,sI+=Y<<8,fI+=x<<8,DI+=X<<8,uI+=Z<<8,yI+=K<<8,FI+=z<<8,mI+=T<<8,C=65535&(e=397*C),B=65535&(n+=e>>>16),o=65535&(r+=n>>>16),a=65535&(E+=r>>>16),w=65535&(h+=E>>>16),c=65535&(D+=h>>>16),l=65535&(u+=D>>>16),p=65535&(y+=u>>>16),M=65535&(F+=y>>>16),d=65535&(m+=F>>>16),H=65535&(G+=m>>>16),b=65535&(U+=G>>>16),k=65535&(L+=U>>>16),J=65535&(N+=L>>>16),v=65535&(S+=N>>>16),Y=65535&(R+=S>>>16),x=65535&(q+=R>>>16),X=65535&(P+=q>>>16),Z=65535&(O+=P>>>16),K=65535&(V+=O>>>16),z=65535&(j+=V>>>16),T=65535&(W+=j>>>16),$=65535&(_+=W>>>16),IA=65535&(AA+=_>>>16),iA=65535&(tA+=AA>>>16),eA=65535&(gA+=tA>>>16),nA=65535&(CA+=gA>>>16),BA=65535&(QA+=CA>>>16),oA=65535&(rA+=QA>>>16),aA=65535&(EA+=rA>>>16),hA=65535&(sA+=EA>>>16),wA=65535&(fA+=sA>>>16),cA=65535&(DA+=fA>>>16),lA=65535&(uA+=DA>>>16),pA=65535&(yA+=uA>>>16),MA=65535&(FA+=yA>>>16),dA=65535&(mA+=FA>>>16),HA=65535&(GA+=mA>>>16),bA=65535&(UA+=GA>>>16),kA=65535&(LA+=UA>>>16),JA=65535&(NA+=LA>>>16),vA=65535&(SA+=NA>>>16),YA=65535&(RA+=SA>>>16),xA=65535&(qA+=RA>>>16),XA=65535&(PA+=qA>>>16),ZA=65535&(OA+=PA>>>16),KA=65535&(VA+=OA>>>16),zA=65535&(jA+=VA>>>16),TA=65535&(WA+=jA>>>16),$A=65535&(_A+=WA>>>16),II=65535&(AI+=_A>>>16),iI=65535&(tI+=AI>>>16),eI=65535&(gI+=tI>>>16),nI=65535&(CI+=gI>>>16),BI=65535&(QI+=CI>>>16),oI=65535&(rI+=QI>>>16),aI=65535&(EI+=rI>>>16),hI=65535&(sI+=EI>>>16),wI=65535&(fI+=sI>>>16),cI=65535&(DI+=fI>>>16),lI=65535&(uI+=DI>>>16),pI=65535&(yI+=uI>>>16),dI=mI+((FI+=yI>>>16)>>>16)&65535,MI=65535&FI,C^=63&I|128):55296==(64512&I)&&t+1<i&&56320==(64512&A.charCodeAt(t+1))?(n=397*B,r=397*o,E=397*a,h=397*w,D=397*c,u=397*l,y=397*p,F=397*M,m=397*d,G=397*H,U=397*b,L=397*k,N=397*J,S=397*v,R=397*Y,q=397*x,P=397*X,O=397*Z,V=397*K,j=397*z,W=397*T,_=397*$,AA=397*IA,tA=397*iA,gA=397*eA,CA=397*nA,QA=397*BA,rA=397*oA,EA=397*aA,sA=397*hA,fA=397*wA,DA=397*cA,uA=397*lA,yA=397*pA,FA=397*MA,mA=397*dA,GA=397*HA,UA=397*bA,LA=397*kA,NA=397*JA,SA=397*vA,RA=397*YA,qA=397*xA,PA=397*XA,OA=397*ZA,VA=397*KA,jA=397*zA,WA=397*TA,_A=397*$A,AI=397*II,tI=397*iI,gI=397*eI,CI=397*nI,QI=397*BI,rI=397*oI,EI=397*aI,sI=397*hI,fI=397*wI,DI=397*cI,uI=397*lI,yI=397*pI,FI=397*MI,mI=397*dI,RA+=(C^=(I=65536+((1023&I)<<10)+(1023&A.charCodeAt(++t)))>>18|240)<<8,qA+=B<<8,PA+=o<<8,OA+=a<<8,VA+=w<<8,jA+=c<<8,WA+=l<<8,_A+=p<<8,AI+=M<<8,tI+=d<<8,gI+=H<<8,CI+=b<<8,QI+=k<<8,rI+=J<<8,EI+=v<<8,sI+=Y<<8,fI+=x<<8,DI+=X<<8,uI+=Z<<8,yI+=K<<8,FI+=z<<8,C=65535&(e=397*C),dI=(mI+=T<<8)+((FI+=(yI+=(uI+=(DI+=(fI+=(sI+=(EI+=(rI+=(QI+=(CI+=(gI+=(tI+=(AI+=(_A+=(WA+=(jA+=(VA+=(OA+=(PA+=(qA+=(RA+=(SA+=(NA+=(LA+=(UA+=(GA+=(mA+=(FA+=(yA+=(uA+=(DA+=(fA+=(sA+=(EA+=(rA+=(QA+=(CA+=(gA+=(tA+=(AA+=(_+=(W+=(j+=(V+=(O+=(P+=(q+=(R+=(S+=(N+=(L+=(U+=(G+=(m+=(F+=(y+=(u+=(D+=(h+=(E+=(r+=(n+=e>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,n=397*(B=65535&n),r=397*(o=65535&r),E=397*(a=65535&E),h=397*(w=65535&h),D=397*(c=65535&D),u=397*(l=65535&u),y=397*(p=65535&y),F=397*(M=65535&F),m=397*(d=65535&m),G=397*(H=65535&G),U=397*(b=65535&U),L=397*(k=65535&L),N=397*(J=65535&N),S=397*(v=65535&S),R=397*(Y=65535&R),q=397*(x=65535&q),P=397*(X=65535&P),O=397*(Z=65535&O),V=397*(K=65535&V),j=397*(z=65535&j),W=397*(T=65535&W),_=397*($=65535&_),AA=397*(IA=65535&AA),tA=397*(iA=65535&tA),gA=397*(eA=65535&gA),CA=397*(nA=65535&CA),QA=397*(BA=65535&QA),rA=397*(oA=65535&rA),EA=397*(aA=65535&EA),sA=397*(hA=65535&sA),fA=397*(wA=65535&fA),DA=397*(cA=65535&DA),uA=397*(lA=65535&uA),yA=397*(pA=65535&yA),FA=397*(MA=65535&FA),mA=397*(dA=65535&mA),GA=397*(HA=65535&GA),UA=397*(bA=65535&UA),LA=397*(kA=65535&LA),NA=397*(JA=65535&NA),SA=397*(vA=65535&SA),RA=397*(YA=65535&RA),qA=397*(xA=65535&qA),PA=397*(XA=65535&PA),OA=397*(ZA=65535&OA),VA=397*(KA=65535&VA),jA=397*(zA=65535&jA),WA=397*(TA=65535&WA),_A=397*($A=65535&_A),AI=397*(II=65535&AI),tI=397*(iI=65535&tI),gI=397*(eI=65535&gI),CI=397*(nI=65535&CI),QI=397*(BI=65535&QI),rI=397*(oI=65535&rI),EI=397*(aI=65535&EI),sI=397*(hI=65535&sI),fI=397*(wI=65535&fI),DI=397*(cI=65535&DI),uI=397*(lI=65535&uI),yI=397*(pI=65535&yI),FI=397*(MI=65535&FI),mI=397*dI,RA+=(C^=I>>12&63|128)<<8,qA+=B<<8,PA+=o<<8,OA+=a<<8,VA+=w<<8,jA+=c<<8,WA+=l<<8,_A+=p<<8,AI+=M<<8,tI+=d<<8,gI+=H<<8,CI+=b<<8,QI+=k<<8,rI+=J<<8,EI+=v<<8,sI+=Y<<8,fI+=x<<8,DI+=X<<8,uI+=Z<<8,yI+=K<<8,FI+=z<<8,C=65535&(e=397*C),dI=(mI+=T<<8)+((FI+=(yI+=(uI+=(DI+=(fI+=(sI+=(EI+=(rI+=(QI+=(CI+=(gI+=(tI+=(AI+=(_A+=(WA+=(jA+=(VA+=(OA+=(PA+=(qA+=(RA+=(SA+=(NA+=(LA+=(UA+=(GA+=(mA+=(FA+=(yA+=(uA+=(DA+=(fA+=(sA+=(EA+=(rA+=(QA+=(CA+=(gA+=(tA+=(AA+=(_+=(W+=(j+=(V+=(O+=(P+=(q+=(R+=(S+=(N+=(L+=(U+=(G+=(m+=(F+=(y+=(u+=(D+=(h+=(E+=(r+=(n+=e>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,n=397*(B=65535&n),r=397*(o=65535&r),E=397*(a=65535&E),h=397*(w=65535&h),D=397*(c=65535&D),u=397*(l=65535&u),y=397*(p=65535&y),F=397*(M=65535&F),m=397*(d=65535&m),G=397*(H=65535&G),U=397*(b=65535&U),L=397*(k=65535&L),N=397*(J=65535&N),S=397*(v=65535&S),R=397*(Y=65535&R),q=397*(x=65535&q),P=397*(X=65535&P),O=397*(Z=65535&O),V=397*(K=65535&V),j=397*(z=65535&j),W=397*(T=65535&W),_=397*($=65535&_),AA=397*(IA=65535&AA),tA=397*(iA=65535&tA),gA=397*(eA=65535&gA),CA=397*(nA=65535&CA),QA=397*(BA=65535&QA),rA=397*(oA=65535&rA),EA=397*(aA=65535&EA),sA=397*(hA=65535&sA),fA=397*(wA=65535&fA),DA=397*(cA=65535&DA),uA=397*(lA=65535&uA),yA=397*(pA=65535&yA),FA=397*(MA=65535&FA),mA=397*(dA=65535&mA),GA=397*(HA=65535&GA),UA=397*(bA=65535&UA),LA=397*(kA=65535&LA),NA=397*(JA=65535&NA),SA=397*(vA=65535&SA),RA=397*(YA=65535&RA),qA=397*(xA=65535&qA),PA=397*(XA=65535&PA),OA=397*(ZA=65535&OA),VA=397*(KA=65535&VA),jA=397*(zA=65535&jA),WA=397*(TA=65535&WA),_A=397*($A=65535&_A),AI=397*(II=65535&AI),tI=397*(iI=65535&tI),gI=397*(eI=65535&gI),CI=397*(nI=65535&CI),QI=397*(BI=65535&QI),rI=397*(oI=65535&rI),EI=397*(aI=65535&EI),sI=397*(hI=65535&sI),fI=397*(wI=65535&fI),DI=397*(cI=65535&DI),uI=397*(lI=65535&uI),yI=397*(pI=65535&yI),FI=397*(MI=65535&FI),mI=397*dI,RA+=(C^=I>>6&63|128)<<8,qA+=B<<8,PA+=o<<8,OA+=a<<8,VA+=w<<8,jA+=c<<8,WA+=l<<8,_A+=p<<8,AI+=M<<8,tI+=d<<8,gI+=H<<8,CI+=b<<8,QI+=k<<8,rI+=J<<8,EI+=v<<8,sI+=Y<<8,fI+=x<<8,DI+=X<<8,uI+=Z<<8,yI+=K<<8,FI+=z<<8,mI+=T<<8,C=65535&(e=397*C),B=65535&(n+=e>>>16),o=65535&(r+=n>>>16),a=65535&(E+=r>>>16),w=65535&(h+=E>>>16),c=65535&(D+=h>>>16),l=65535&(u+=D>>>16),p=65535&(y+=u>>>16),M=65535&(F+=y>>>16),d=65535&(m+=F>>>16),H=65535&(G+=m>>>16),b=65535&(U+=G>>>16),k=65535&(L+=U>>>16),J=65535&(N+=L>>>16),v=65535&(S+=N>>>16),Y=65535&(R+=S>>>16),x=65535&(q+=R>>>16),X=65535&(P+=q>>>16),Z=65535&(O+=P>>>16),K=65535&(V+=O>>>16),z=65535&(j+=V>>>16),T=65535&(W+=j>>>16),$=65535&(_+=W>>>16),IA=65535&(AA+=_>>>16),iA=65535&(tA+=AA>>>16),eA=65535&(gA+=tA>>>16),nA=65535&(CA+=gA>>>16),BA=65535&(QA+=CA>>>16),oA=65535&(rA+=QA>>>16),aA=65535&(EA+=rA>>>16),hA=65535&(sA+=EA>>>16),wA=65535&(fA+=sA>>>16),cA=65535&(DA+=fA>>>16),lA=65535&(uA+=DA>>>16),pA=65535&(yA+=uA>>>16),MA=65535&(FA+=yA>>>16),dA=65535&(mA+=FA>>>16),HA=65535&(GA+=mA>>>16),bA=65535&(UA+=GA>>>16),kA=65535&(LA+=UA>>>16),JA=65535&(NA+=LA>>>16),vA=65535&(SA+=NA>>>16),YA=65535&(RA+=SA>>>16),xA=65535&(qA+=RA>>>16),XA=65535&(PA+=qA>>>16),ZA=65535&(OA+=PA>>>16),KA=65535&(VA+=OA>>>16),zA=65535&(jA+=VA>>>16),TA=65535&(WA+=jA>>>16),$A=65535&(_A+=WA>>>16),II=65535&(AI+=_A>>>16),iI=65535&(tI+=AI>>>16),eI=65535&(gI+=tI>>>16),nI=65535&(CI+=gI>>>16),BI=65535&(QI+=CI>>>16),oI=65535&(rI+=QI>>>16),aI=65535&(EI+=rI>>>16),hI=65535&(sI+=EI>>>16),wI=65535&(fI+=sI>>>16),cI=65535&(DI+=fI>>>16),lI=65535&(uI+=DI>>>16),pI=65535&(yI+=uI>>>16),dI=mI+((FI+=yI>>>16)>>>16)&65535,MI=65535&FI,C^=63&I|128):(n=397*B,r=397*o,E=397*a,h=397*w,D=397*c,u=397*l,y=397*p,F=397*M,m=397*d,G=397*H,U=397*b,L=397*k,N=397*J,S=397*v,R=397*Y,q=397*x,P=397*X,O=397*Z,V=397*K,j=397*z,W=397*T,_=397*$,AA=397*IA,tA=397*iA,gA=397*eA,CA=397*nA,QA=397*BA,rA=397*oA,EA=397*aA,sA=397*hA,fA=397*wA,DA=397*cA,uA=397*lA,yA=397*pA,FA=397*MA,mA=397*dA,GA=397*HA,UA=397*bA,LA=397*kA,NA=397*JA,SA=397*vA,RA=397*YA,qA=397*xA,PA=397*XA,OA=397*ZA,VA=397*KA,jA=397*zA,WA=397*TA,_A=397*$A,AI=397*II,tI=397*iI,gI=397*eI,CI=397*nI,QI=397*BI,rI=397*oI,EI=397*aI,sI=397*hI,fI=397*wI,DI=397*cI,uI=397*lI,yI=397*pI,FI=397*MI,mI=397*dI,RA+=(C^=I>>12|224)<<8,qA+=B<<8,PA+=o<<8,OA+=a<<8,VA+=w<<8,jA+=c<<8,WA+=l<<8,_A+=p<<8,AI+=M<<8,tI+=d<<8,gI+=H<<8,CI+=b<<8,QI+=k<<8,rI+=J<<8,EI+=v<<8,sI+=Y<<8,fI+=x<<8,DI+=X<<8,uI+=Z<<8,yI+=K<<8,FI+=z<<8,C=65535&(e=397*C),dI=(mI+=T<<8)+((FI+=(yI+=(uI+=(DI+=(fI+=(sI+=(EI+=(rI+=(QI+=(CI+=(gI+=(tI+=(AI+=(_A+=(WA+=(jA+=(VA+=(OA+=(PA+=(qA+=(RA+=(SA+=(NA+=(LA+=(UA+=(GA+=(mA+=(FA+=(yA+=(uA+=(DA+=(fA+=(sA+=(EA+=(rA+=(QA+=(CA+=(gA+=(tA+=(AA+=(_+=(W+=(j+=(V+=(O+=(P+=(q+=(R+=(S+=(N+=(L+=(U+=(G+=(m+=(F+=(y+=(u+=(D+=(h+=(E+=(r+=(n+=e>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,n=397*(B=65535&n),r=397*(o=65535&r),E=397*(a=65535&E),h=397*(w=65535&h),D=397*(c=65535&D),u=397*(l=65535&u),y=397*(p=65535&y),F=397*(M=65535&F),m=397*(d=65535&m),G=397*(H=65535&G),U=397*(b=65535&U),L=397*(k=65535&L),N=397*(J=65535&N),S=397*(v=65535&S),R=397*(Y=65535&R),q=397*(x=65535&q),P=397*(X=65535&P),O=397*(Z=65535&O),V=397*(K=65535&V),j=397*(z=65535&j),W=397*(T=65535&W),_=397*($=65535&_),AA=397*(IA=65535&AA),tA=397*(iA=65535&tA),gA=397*(eA=65535&gA),CA=397*(nA=65535&CA),QA=397*(BA=65535&QA),rA=397*(oA=65535&rA),EA=397*(aA=65535&EA),sA=397*(hA=65535&sA),fA=397*(wA=65535&fA),DA=397*(cA=65535&DA),uA=397*(lA=65535&uA),yA=397*(pA=65535&yA),FA=397*(MA=65535&FA),mA=397*(dA=65535&mA),GA=397*(HA=65535&GA),UA=397*(bA=65535&UA),LA=397*(kA=65535&LA),NA=397*(JA=65535&NA),SA=397*(vA=65535&SA),RA=397*(YA=65535&RA),qA=397*(xA=65535&qA),PA=397*(XA=65535&PA),OA=397*(ZA=65535&OA),VA=397*(KA=65535&VA),jA=397*(zA=65535&jA),WA=397*(TA=65535&WA),_A=397*($A=65535&_A),AI=397*(II=65535&AI),tI=397*(iI=65535&tI),gI=397*(eI=65535&gI),CI=397*(nI=65535&CI),QI=397*(BI=65535&QI),rI=397*(oI=65535&rI),EI=397*(aI=65535&EI),sI=397*(hI=65535&sI),fI=397*(wI=65535&fI),DI=397*(cI=65535&DI),uI=397*(lI=65535&uI),yI=397*(pI=65535&yI),FI=397*(MI=65535&FI),mI=397*dI,RA+=(C^=I>>6&63|128)<<8,qA+=B<<8,PA+=o<<8,OA+=a<<8,VA+=w<<8,jA+=c<<8,WA+=l<<8,_A+=p<<8,AI+=M<<8,tI+=d<<8,gI+=H<<8,CI+=b<<8,QI+=k<<8,rI+=J<<8,EI+=v<<8,sI+=Y<<8,fI+=x<<8,DI+=X<<8,uI+=Z<<8,yI+=K<<8,FI+=z<<8,mI+=T<<8,C=65535&(e=397*C),B=65535&(n+=e>>>16),o=65535&(r+=n>>>16),a=65535&(E+=r>>>16),w=65535&(h+=E>>>16),c=65535&(D+=h>>>16),l=65535&(u+=D>>>16),p=65535&(y+=u>>>16),M=65535&(F+=y>>>16),d=65535&(m+=F>>>16),H=65535&(G+=m>>>16),b=65535&(U+=G>>>16),k=65535&(L+=U>>>16),J=65535&(N+=L>>>16),v=65535&(S+=N>>>16),Y=65535&(R+=S>>>16),x=65535&(q+=R>>>16),X=65535&(P+=q>>>16),Z=65535&(O+=P>>>16),K=65535&(V+=O>>>16),z=65535&(j+=V>>>16),T=65535&(W+=j>>>16),$=65535&(_+=W>>>16),IA=65535&(AA+=_>>>16),iA=65535&(tA+=AA>>>16),eA=65535&(gA+=tA>>>16),nA=65535&(CA+=gA>>>16),BA=65535&(QA+=CA>>>16),oA=65535&(rA+=QA>>>16),aA=65535&(EA+=rA>>>16),hA=65535&(sA+=EA>>>16),wA=65535&(fA+=sA>>>16),cA=65535&(DA+=fA>>>16),lA=65535&(uA+=DA>>>16),pA=65535&(yA+=uA>>>16),MA=65535&(FA+=yA>>>16),dA=65535&(mA+=FA>>>16),HA=65535&(GA+=mA>>>16),bA=65535&(UA+=GA>>>16),kA=65535&(LA+=UA>>>16),JA=65535&(NA+=LA>>>16),vA=65535&(SA+=NA>>>16),YA=65535&(RA+=SA>>>16),xA=65535&(qA+=RA>>>16),XA=65535&(PA+=qA>>>16),ZA=65535&(OA+=PA>>>16),KA=65535&(VA+=OA>>>16),zA=65535&(jA+=VA>>>16),TA=65535&(WA+=jA>>>16),$A=65535&(_A+=WA>>>16),II=65535&(AI+=_A>>>16),iI=65535&(tI+=AI>>>16),eI=65535&(gI+=tI>>>16),nI=65535&(CI+=gI>>>16),BI=65535&(QI+=CI>>>16),oI=65535&(rI+=QI>>>16),aI=65535&(EI+=rI>>>16),hI=65535&(sI+=EI>>>16),wI=65535&(fI+=sI>>>16),cI=65535&(DI+=fI>>>16),lI=65535&(uI+=DI>>>16),pI=65535&(yI+=uI>>>16),dI=mI+((FI+=yI>>>16)>>>16)&65535,MI=65535&FI,C^=63&I|128);return f(Q[dI>>8]+Q[255&dI]+Q[MI>>8]+Q[255&MI]+Q[pI>>8]+Q[255&pI]+Q[lI>>8]+Q[255&lI]+Q[cI>>8]+Q[255&cI]+Q[wI>>8]+Q[255&wI]+Q[hI>>8]+Q[255&hI]+Q[aI>>8]+Q[255&aI]+Q[oI>>8]+Q[255&oI]+Q[BI>>8]+Q[255&BI]+Q[nI>>8]+Q[255&nI]+Q[eI>>8]+Q[255&eI]+Q[iI>>8]+Q[255&iI]+Q[II>>8]+Q[255&II]+Q[$A>>8]+Q[255&$A]+Q[TA>>8]+Q[255&TA]+Q[zA>>8]+Q[255&zA]+Q[KA>>8]+Q[255&KA]+Q[ZA>>8]+Q[255&ZA]+Q[XA>>8]+Q[255&XA]+Q[xA>>8]+Q[255&xA]+Q[YA>>8]+Q[255&YA]+Q[vA>>8]+Q[255&vA]+Q[JA>>8]+Q[255&JA]+Q[kA>>8]+Q[255&kA]+Q[bA>>8]+Q[255&bA]+Q[HA>>8]+Q[255&HA]+Q[dA>>8]+Q[255&dA]+Q[MA>>8]+Q[255&MA]+Q[pA>>8]+Q[255&pA]+Q[lA>>8]+Q[255&lA]+Q[cA>>8]+Q[255&cA]+Q[wA>>8]+Q[255&wA]+Q[hA>>8]+Q[255&hA]+Q[aA>>8]+Q[255&aA]+Q[oA>>8]+Q[255&oA]+Q[BA>>8]+Q[255&BA]+Q[nA>>8]+Q[255&nA]+Q[eA>>8]+Q[255&eA]+Q[iA>>8]+Q[255&iA]+Q[IA>>8]+Q[255&IA]+Q[$>>8]+Q[255&$]+Q[T>>8]+Q[255&T]+Q[z>>8]+Q[255&z]+Q[K>>8]+Q[255&K]+Q[Z>>8]+Q[255&Z]+Q[X>>8]+Q[255&X]+Q[x>>8]+Q[255&x]+Q[Y>>8]+Q[255&Y]+Q[v>>8]+Q[255&v]+Q[J>>8]+Q[255&J]+Q[k>>8]+Q[255&k]+Q[b>>8]+Q[255&b]+Q[H>>8]+Q[255&H]+Q[d>>8]+Q[255&d]+Q[M>>8]+Q[255&M]+Q[p>>8]+Q[255&p]+Q[l>>8]+Q[255&l]+Q[c>>8]+Q[255&c]+Q[w>>8]+Q[255&w]+Q[a>>8]+Q[255&a]+Q[o>>8]+Q[255&o]+Q[B>>8]+Q[255&B]+Q[C>>8]+Q[255&C],1024)}return I=p,t=d,i=b,g=J,e=Y,C=X,n=K,u("1a"),l(!1),y(),{hash:c,setKeyspace:function(A){if(52!==A&&!s[A])throw new Error("Supported FNV keyspacs: 32, 52, 64, 128, 256, 512, and 1024 bit");a=A},version:u,useUTF8:l,seed:y,fast1a32:function(A){var I,t=A.length-3,i=0,g=40389,e=0,C=33052;for(I=0;I<t;)e=403*C,e+=(g^=A.charCodeAt(I++))<<8,g=65535&(i=403*g),e=403*(C=e+(i>>>16)&65535),e+=(g^=A.charCodeAt(I++))<<8,g=65535&(i=403*g),e=403*(C=e+(i>>>16)&65535),e+=(g^=A.charCodeAt(I++))<<8,g=65535&(i=403*g),e=403*(C=e+(i>>>16)&65535),C=(e+=(g^=A.charCodeAt(I++))<<8)+((i=403*g)>>>16)&65535,g=65535&i;for(;I<t+3;)e=403*C,C=(e+=(g^=A.charCodeAt(I++))<<8)+((i=403*g)>>>16)&65535,g=65535&i;return(C<<16>>>0)+g},fast1a32hex:function(A){var I,t=A.length-3,i=0,g=40389,e=0,C=33052;for(I=0;I<t;)e=403*C,e+=(g^=A.charCodeAt(I++))<<8,g=65535&(i=403*g),e=403*(C=e+(i>>>16)&65535),e+=(g^=A.charCodeAt(I++))<<8,g=65535&(i=403*g),e=403*(C=e+(i>>>16)&65535),e+=(g^=A.charCodeAt(I++))<<8,g=65535&(i=403*g),e=403*(C=e+(i>>>16)&65535),C=(e+=(g^=A.charCodeAt(I++))<<8)+((i=403*g)>>>16)&65535,g=65535&i;for(;I<t+3;)e=403*C,C=(e+=(g^=A.charCodeAt(I++))<<8)+((i=403*g)>>>16)&65535,g=65535&i;return Q[C>>>8&255]+Q[255&C]+Q[g>>>8&255]+Q[255&g]},fast1a52:function(A){var I,t=A.length-3,i=0,g=8997,e=0,C=33826,n=0,Q=40164,B=0,r=52210;for(I=0;I<t;)e=435*C,n=435*Q,B=435*r,n+=(g^=A.charCodeAt(I++))<<8,g=65535&(i=435*g),r=(B+=C<<8)+((n+=(e+=i>>>16)>>>16)>>>16)&65535,e=435*(C=65535&e),n=435*(Q=65535&n),B=435*r,n+=(g^=A.charCodeAt(I++))<<8,g=65535&(i=435*g),r=(B+=C<<8)+((n+=(e+=i>>>16)>>>16)>>>16)&65535,e=435*(C=65535&e),n=435*(Q=65535&n),B=435*r,n+=(g^=A.charCodeAt(I++))<<8,g=65535&(i=435*g),r=(B+=C<<8)+((n+=(e+=i>>>16)>>>16)>>>16)&65535,e=435*(C=65535&e),n=435*(Q=65535&n),B=435*r,n+=(g^=A.charCodeAt(I++))<<8,B+=C<<8,g=65535&(i=435*g),C=65535&(e+=i>>>16),r=B+((n+=e>>>16)>>>16)&65535,Q=65535&n;for(;I<t+3;)e=435*C,n=435*Q,B=435*r,n+=(g^=A.charCodeAt(I++))<<8,B+=C<<8,g=65535&(i=435*g),C=65535&(e+=i>>>16),r=B+((n+=e>>>16)>>>16)&65535,Q=65535&n;return 281474976710656*(15&r)+4294967296*Q+65536*C+(g^r>>4)},fast1a52hex:function(A){var I,t=A.length-3,i=0,g=8997,e=0,C=33826,n=0,r=40164,o=0,E=52210;for(I=0;I<t;)e=435*C,n=435*r,o=435*E,n+=(g^=A.charCodeAt(I++))<<8,g=65535&(i=435*g),E=(o+=C<<8)+((n+=(e+=i>>>16)>>>16)>>>16)&65535,e=435*(C=65535&e),n=435*(r=65535&n),o=435*E,n+=(g^=A.charCodeAt(I++))<<8,g=65535&(i=435*g),E=(o+=C<<8)+((n+=(e+=i>>>16)>>>16)>>>16)&65535,e=435*(C=65535&e),n=435*(r=65535&n),o=435*E,n+=(g^=A.charCodeAt(I++))<<8,g=65535&(i=435*g),E=(o+=C<<8)+((n+=(e+=i>>>16)>>>16)>>>16)&65535,e=435*(C=65535&e),n=435*(r=65535&n),o=435*E,n+=(g^=A.charCodeAt(I++))<<8,o+=C<<8,g=65535&(i=435*g),C=65535&(e+=i>>>16),E=o+((n+=e>>>16)>>>16)&65535,r=65535&n;for(;I<t+3;)e=435*C,n=435*r,o=435*E,n+=(g^=A.charCodeAt(I++))<<8,o+=C<<8,g=65535&(i=435*g),C=65535&(e+=i>>>16),E=o+((n+=e>>>16)>>>16)&65535,r=65535&n;return B[15&E]+Q[r>>8]+Q[255&r]+Q[C>>8]+Q[255&C]+Q[g>>8^E>>12]+Q[255&(g^E>>4)]},fast1a64:function(A){var I,t=A.length-3,i=0,g=8997,e=0,C=33826,n=0,B=40164,r=0,o=52210;for(I=0;I<t;)e=435*C,n=435*B,r=435*o,n+=(g^=A.charCodeAt(I++))<<8,g=65535&(i=435*g),o=(r+=C<<8)+((n+=(e+=i>>>16)>>>16)>>>16)&65535,e=435*(C=65535&e),n=435*(B=65535&n),r=435*o,n+=(g^=A.charCodeAt(I++))<<8,g=65535&(i=435*g),o=(r+=C<<8)+((n+=(e+=i>>>16)>>>16)>>>16)&65535,e=435*(C=65535&e),n=435*(B=65535&n),r=435*o,n+=(g^=A.charCodeAt(I++))<<8,g=65535&(i=435*g),o=(r+=C<<8)+((n+=(e+=i>>>16)>>>16)>>>16)&65535,e=435*(C=65535&e),n=435*(B=65535&n),r=435*o,n+=(g^=A.charCodeAt(I++))<<8,r+=C<<8,g=65535&(i=435*g),C=65535&(e+=i>>>16),o=r+((n+=e>>>16)>>>16)&65535,B=65535&n;for(;I<t+3;)e=435*C,n=435*B,r=435*o,n+=(g^=A.charCodeAt(I++))<<8,r+=C<<8,g=65535&(i=435*g),C=65535&(e+=i>>>16),o=r+((n+=e>>>16)>>>16)&65535,B=65535&n;return Q[o>>8]+Q[255&o]+Q[B>>8]+Q[255&B]+Q[C>>8]+Q[255&C]+Q[g>>8]+Q[255&g]},fast1a32utf:function(A){var I,t,i=A.length,g=0,e=40389,C=0,n=33052;for(t=0;t<i;t++)(I=A.charCodeAt(t))<128?e^=I:I<2048?(C=403*n,n=(C+=(e^=I>>6|192)<<8)+((g=403*e)>>>16)&65535,e=65535&g,e^=63&I|128):55296==(64512&I)&&t+1<i&&56320==(64512&A.charCodeAt(t+1))?(C=403*n,C+=(e^=(I=65536+((1023&I)<<10)+(1023&A.charCodeAt(++t)))>>18|240)<<8,e=65535&(g=403*e),C=403*(n=C+(g>>>16)&65535),C+=(e^=I>>12&63|128)<<8,e=65535&(g=403*e),C=403*(n=C+(g>>>16)&65535),n=(C+=(e^=I>>6&63|128)<<8)+((g=403*e)>>>16)&65535,e=65535&g,e^=63&I|128):(C=403*n,C+=(e^=I>>12|224)<<8,e=65535&(g=403*e),C=403*(n=C+(g>>>16)&65535),n=(C+=(e^=I>>6&63|128)<<8)+((g=403*e)>>>16)&65535,e=65535&g,e^=63&I|128),C=403*n,n=(C+=e<<8)+((g=403*e)>>>16)&65535,e=65535&g;return(n<<16>>>0)+e},fast1a32hexutf:function(A){var I,t,i=A.length,g=0,e=40389,C=0,n=33052;for(t=0;t<i;t++)(I=A.charCodeAt(t))<128?e^=I:I<2048?(C=403*n,n=(C+=(e^=I>>6|192)<<8)+((g=403*e)>>>16)&65535,e=65535&g,e^=63&I|128):55296==(64512&I)&&t+1<i&&56320==(64512&A.charCodeAt(t+1))?(C=403*n,C+=(e^=(I=65536+((1023&I)<<10)+(1023&A.charCodeAt(++t)))>>18|240)<<8,e=65535&(g=403*e),C=403*(n=C+(g>>>16)&65535),C+=(e^=I>>12&63|128)<<8,e=65535&(g=403*e),C=403*(n=C+(g>>>16)&65535),n=(C+=(e^=I>>6&63|128)<<8)+((g=403*e)>>>16)&65535,e=65535&g,e^=63&I|128):(C=403*n,C+=(e^=I>>12|224)<<8,e=65535&(g=403*e),C=403*(n=C+(g>>>16)&65535),n=(C+=(e^=I>>6&63|128)<<8)+((g=403*e)>>>16)&65535,e=65535&g,e^=63&I|128),C=403*n,n=(C+=e<<8)+((g=403*e)>>>16)&65535,e=65535&g;return Q[n>>>8&255]+Q[255&n]+Q[e>>>8&255]+Q[255&e]},fast1a52utf:function(A){var I,t,i=A.length,g=0,e=8997,C=0,n=33826,Q=0,B=40164,r=0,o=52210;for(t=0;t<i;t++)(I=A.charCodeAt(t))<128?e^=I:I<2048?(C=435*n,Q=435*B,r=435*o,Q+=(e^=I>>6|192)<<8,r+=n<<8,e=65535&(g=435*e),n=65535&(C+=g>>>16),o=r+((Q+=C>>>16)>>>16)&65535,B=65535&Q,e^=63&I|128):55296==(64512&I)&&t+1<i&&56320==(64512&A.charCodeAt(t+1))?(C=435*n,Q=435*B,r=435*o,Q+=(e^=(I=65536+((1023&I)<<10)+(1023&A.charCodeAt(++t)))>>18|240)<<8,e=65535&(g=435*e),o=(r+=n<<8)+((Q+=(C+=g>>>16)>>>16)>>>16)&65535,C=435*(n=65535&C),Q=435*(B=65535&Q),r=435*o,Q+=(e^=I>>12&63|128)<<8,e=65535&(g=435*e),o=(r+=n<<8)+((Q+=(C+=g>>>16)>>>16)>>>16)&65535,C=435*(n=65535&C),Q=435*(B=65535&Q),r=435*o,Q+=(e^=I>>6&63|128)<<8,r+=n<<8,e=65535&(g=435*e),n=65535&(C+=g>>>16),o=r+((Q+=C>>>16)>>>16)&65535,B=65535&Q,e^=63&I|128):(C=435*n,Q=435*B,r=435*o,Q+=(e^=I>>12|224)<<8,e=65535&(g=435*e),o=(r+=n<<8)+((Q+=(C+=g>>>16)>>>16)>>>16)&65535,C=435*(n=65535&C),Q=435*(B=65535&Q),r=435*o,Q+=(e^=I>>6&63|128)<<8,r+=n<<8,e=65535&(g=435*e),n=65535&(C+=g>>>16),o=r+((Q+=C>>>16)>>>16)&65535,B=65535&Q,e^=63&I|128),C=435*n,Q=435*B,r=435*o,Q+=e<<8,r+=n<<8,e=65535&(g=435*e),n=65535&(C+=g>>>16),o=r+((Q+=C>>>16)>>>16)&65535,B=65535&Q;return 281474976710656*(15&o)+4294967296*B+65536*n+(e^o>>4)},fast1a52hexutf:function(A){var I,t,i=A.length,g=0,e=8997,C=0,n=33826,r=0,o=40164,E=0,a=52210;for(t=0;t<i;t++)(I=A.charCodeAt(t))<128?e^=I:I<2048?(C=435*n,r=435*o,E=435*a,r+=(e^=I>>6|192)<<8,E+=n<<8,e=65535&(g=435*e),n=65535&(C+=g>>>16),a=E+((r+=C>>>16)>>>16)&65535,o=65535&r,e^=63&I|128):55296==(64512&I)&&t+1<i&&56320==(64512&A.charCodeAt(t+1))?(C=435*n,r=435*o,E=435*a,r+=(e^=(I=65536+((1023&I)<<10)+(1023&A.charCodeAt(++t)))>>18|240)<<8,e=65535&(g=435*e),a=(E+=n<<8)+((r+=(C+=g>>>16)>>>16)>>>16)&65535,C=435*(n=65535&C),r=435*(o=65535&r),E=435*a,r+=(e^=I>>12&63|128)<<8,e=65535&(g=435*e),a=(E+=n<<8)+((r+=(C+=g>>>16)>>>16)>>>16)&65535,C=435*(n=65535&C),r=435*(o=65535&r),E=435*a,r+=(e^=I>>6&63|128)<<8,E+=n<<8,e=65535&(g=435*e),n=65535&(C+=g>>>16),a=E+((r+=C>>>16)>>>16)&65535,o=65535&r,e^=63&I|128):(C=435*n,r=435*o,E=435*a,r+=(e^=I>>12|224)<<8,e=65535&(g=435*e),a=(E+=n<<8)+((r+=(C+=g>>>16)>>>16)>>>16)&65535,C=435*(n=65535&C),r=435*(o=65535&r),E=435*a,r+=(e^=I>>6&63|128)<<8,E+=n<<8,e=65535&(g=435*e),n=65535&(C+=g>>>16),a=E+((r+=C>>>16)>>>16)&65535,o=65535&r,e^=63&I|128),C=435*n,r=435*o,E=435*a,r+=e<<8,E+=n<<8,e=65535&(g=435*e),n=65535&(C+=g>>>16),a=E+((r+=C>>>16)>>>16)&65535,o=65535&r;return B[15&a]+Q[o>>8]+Q[255&o]+Q[n>>8]+Q[255&n]+Q[e>>8^a>>12]+Q[255&(e^a>>4)]},fast1a64utf:function(A){var I,t,i=A.length,g=0,e=8997,C=0,n=33826,B=0,r=40164,o=0,E=52210;for(t=0;t<i;t++)(I=A.charCodeAt(t))<128?e^=I:I<2048?(C=435*n,B=435*r,o=435*E,B+=(e^=I>>6|192)<<8,o+=n<<8,e=65535&(g=435*e),n=65535&(C+=g>>>16),E=o+((B+=C>>>16)>>>16)&65535,r=65535&B,e^=63&I|128):55296==(64512&I)&&t+1<i&&56320==(64512&A.charCodeAt(t+1))?(C=435*n,B=435*r,o=435*E,B+=(e^=(I=65536+((1023&I)<<10)+(1023&A.charCodeAt(++t)))>>18|240)<<8,e=65535&(g=435*e),E=(o+=n<<8)+((B+=(C+=g>>>16)>>>16)>>>16)&65535,C=435*(n=65535&C),B=435*(r=65535&B),o=435*E,B+=(e^=I>>12&63|128)<<8,e=65535&(g=435*e),E=(o+=n<<8)+((B+=(C+=g>>>16)>>>16)>>>16)&65535,C=435*(n=65535&C),B=435*(r=65535&B),o=435*E,B+=(e^=I>>6&63|128)<<8,o+=n<<8,e=65535&(g=435*e),n=65535&(C+=g>>>16),E=o+((B+=C>>>16)>>>16)&65535,r=65535&B,e^=63&I|128):(C=435*n,B=435*r,o=435*E,B+=(e^=I>>12|224)<<8,e=65535&(g=435*e),E=(o+=n<<8)+((B+=(C+=g>>>16)>>>16)>>>16)&65535,C=435*(n=65535&C),B=435*(r=65535&B),o=435*E,B+=(e^=I>>6&63|128)<<8,o+=n<<8,e=65535&(g=435*e),n=65535&(C+=g>>>16),E=o+((B+=C>>>16)>>>16)&65535,r=65535&B,e^=63&I|128),C=435*n,B=435*r,o=435*E,B+=e<<8,o+=n<<8,e=65535&(g=435*e),n=65535&(C+=g>>>16),E=o+((B+=C>>>16)>>>16)&65535,r=65535&B;return Q[E>>8]+Q[255&E]+Q[r>>8]+Q[255&r]+Q[n>>8]+Q[255&n]+Q[e>>8]+Q[255&e]}}}();A.exports=I}));const Mt=[0,1,2,2,3,3,3,3,4,4,4,4,4,4,4,4];function mt(A,I){return I&&10!=I?16==I?"0x"==A.slice(0,2)?BigInt(A):BigInt("0x"+A):void 0:BigInt(A)}const dt=mt;function Gt(A,I){return BigInt(A)<<BigInt(I)}function Ht(A,I){return BigInt(A)>>BigInt(I)}const Ut=Gt,bt=Ht;var Lt=Object.freeze({__proto__:null,fromString:mt,e:dt,fromArray:function(A,I){let t=0n;I=BigInt(I);for(let i=0;i<A.length;i++)t=t*I+BigInt(A[i]);return t},bitLength:function(A){const I=A.toString(16);return 4*(I.length-1)+Mt[parseInt(I[0],16)]},isNegative:function(A){return BigInt(A)<0n},isZero:function(A){return!A},shiftLeft:Gt,shiftRight:Ht,shl:Ut,shr:bt,isOdd:function(A){return 1n==(1n&BigInt(A))},naf:function(A){let I=BigInt(A);const t=[];for(;I;){if(1n&I){const A=2-Number(I%4n);t.push(A),I-=BigInt(A)}else t.push(0);I>>=1n}return t},bits:function(A){let I=BigInt(A);const t=[];for(;I;)1n&I?t.push(1):t.push(0),I>>=1n;return t},toNumber:function(A){if(A>BigInt(Number.MAX_SAFE_INTEGER))throw new Error("Number too big");return Number(A)},toArray:function(A,I){const t=[];let i=BigInt(A);for(I=BigInt(I);i;)t.unshift(Number(i%I)),i/=I;return t},add:function(A,I){return BigInt(A)+BigInt(I)},sub:function(A,I){return BigInt(A)-BigInt(I)},neg:function(A){return-BigInt(A)},mul:function(A,I){return BigInt(A)*BigInt(I)},square:function(A){return BigInt(A)*BigInt(A)},pow:function(A,I){return BigInt(A)**BigInt(I)},exp:function(A,I){return BigInt(A)**BigInt(I)},abs:function(A){return BigInt(A)>=0?BigInt(A):-BigInt(A)},div:function(A,I){return BigInt(A)/BigInt(I)},mod:function(A,I){return BigInt(A)%BigInt(I)},eq:function(A,I){return BigInt(A)==BigInt(I)},neq:function(A,I){return BigInt(A)!=BigInt(I)},lt:function(A,I){return BigInt(A)<BigInt(I)},gt:function(A,I){return BigInt(A)>BigInt(I)},leq:function(A,I){return BigInt(A)<=BigInt(I)},geq:function(A,I){return BigInt(A)>=BigInt(I)},band:function(A,I){return BigInt(A)&BigInt(I)},bor:function(A,I){return BigInt(A)|BigInt(I)},bxor:function(A,I){return BigInt(A)^BigInt(I)},land:function(A,I){return BigInt(A)&&BigInt(I)},lor:function(A,I){return BigInt(A)||BigInt(I)},lnot:function(A){return!BigInt(A)}});function kt(A,I){return"string"==typeof A&&"0x"==A.slice(0,2)?o(A.slice(2),16):o(A,I)}const Nt=kt;function Jt(A,I){return o(A).shiftLeft(I)}function St(A,I){return o(A).shiftRight(I)}const vt=Jt,Rt=St;var Yt=Object.freeze({__proto__:null,fromString:kt,e:Nt,fromArray:function(A,I){return o.fromArray(A,I)},bitLength:function(A){return o(A).bitLength()},isNegative:function(A){return o(A).isNegative()},isZero:function(A){return o(A).isZero()},shiftLeft:Jt,shiftRight:St,shl:vt,shr:Rt,isOdd:function(A){return o(A).isOdd()},naf:function(A){let I=o(A);const t=[];for(;I.gt(o.zero);){if(I.isOdd()){const A=2-I.mod(4).toJSNumber();t.push(A),I=I.minus(A)}else t.push(0);I=I.shiftRight(1)}return t},bits:function(A){let I=o(A);const t=[];for(;I.gt(o.zero);)I.isOdd()?t.push(1):t.push(0),I=I.shiftRight(1);return t},toNumber:function(A){if(!A.lt(o("9007199254740992",10)))throw new Error("Number too big");return A.toJSNumber()},toArray:function(A,I){return o(A).toArray(I)},add:function(A,I){return o(A).add(o(I))},sub:function(A,I){return o(A).minus(o(I))},neg:function(A){return o.zero.minus(o(A))},mul:function(A,I){return o(A).times(o(I))},square:function(A){return o(A).square()},pow:function(A,I){return o(A).pow(o(I))},exp:function(A,I){return o(A).pow(o(I))},abs:function(A){return o(A).abs()},div:function(A,I){return o(A).divide(o(I))},mod:function(A,I){return o(A).mod(o(I))},eq:function(A,I){return o(A).eq(o(I))},neq:function(A,I){return o(A).neq(o(I))},lt:function(A,I){return o(A).lt(o(I))},gt:function(A,I){return o(A).gt(o(I))},leq:function(A,I){return o(A).leq(o(I))},geq:function(A,I){return o(A).geq(o(I))},band:function(A,I){return o(A).and(o(I))},bor:function(A,I){return o(A).or(o(I))},bxor:function(A,I){return o(A).xor(o(I))},land:function(A,I){return!o(A).isZero()&&!o(I).isZero()},lor:function(A,I){return!o(A).isZero()||!o(I).isZero()},lnot:function(A){return o(A).isZero()}});const qt="function"==typeof BigInt;let xt={};qt?Object.assign(xt,Lt):Object.assign(xt,Yt),xt.toRprLE=function(A,I,t,i){const g="0000000"+t.toString(16),e=new Uint32Array(A.buffer,I,i/4),C=1+(4*(g.length-7)-1>>5);for(let A=0;A<C;A++)e[A]=parseInt(g.substring(g.length-8*A-8,g.length-8*A),16);for(let A=C;A<e.length;A++)e[A]=0;for(let I=4*e.length;I<i;I++)A[I]=xt.toNumber(xt.band(xt.shiftRight(t,8*I),255))},xt.toRprBE=function(A,I,t,i){const g="0000000"+t.toString(16),e=new DataView(A.buffer,A.byteOffset+I,i),C=1+(4*(g.length-7)-1>>5);for(let A=0;A<C;A++)e.setUint32(i-4*A-4,parseInt(g.substring(g.length-8*A-8,g.length-8*A),16),!1);for(let A=0;A<i/4-C;A++)e[A]=0},xt.fromRprLE=function(A,I,t){t=t||A.byteLength;const i=new Uint32Array(A.buffer,I,t/4),g=new Array(t/4);return i.forEach(((A,I)=>g[g.length-I-1]=A.toString(16).padStart(8,"0"))),xt.fromString(g.join(""),16)},xt.fromRprBE=function(A,I,t){t=t||A.byteLength;const i=new DataView(A.buffer,A.byteOffset+I,t),g=new Array(t/4);for(let A=0;A<t/4;A++)g[A]=i.getUint32(4*A,!1).toString(16).padStart(8,"0");return xt.fromString(g.join(""),16)},xt.toString=function(A,I){return A.toString(I)},xt.toLEBuff=function(A){const I=new Uint8Array(Math.floor((xt.bitLength(A)-1)/8)+1);return xt.toRprLE(I,0,A,I.byteLength),I},xt.zero=xt.e(0),xt.one=xt.e(1);let{toRprLE:Pt,toRprBE:Xt,fromRprLE:Ot,fromRprBE:Zt,toString:Vt,toLEBuff:Kt,zero:jt,one:zt,fromString:Wt,e:Tt,fromArray:_t,bitLength:$t,isNegative:Ai,isZero:Ii,shiftLeft:ti,shiftRight:ii,shl:gi,shr:ei,isOdd:Ci,naf:ni,bits:Qi,toNumber:Bi,toArray:ri,add:oi,sub:Ei,neg:ai,mul:si,square:hi,pow:fi,exp:wi,abs:Di,div:ci,mod:ui,eq:li,neq:yi,lt:pi,gt:Fi,leq:Mi,geq:mi,band:di,bor:Gi,bxor:Hi,land:Ui,lor:bi,lnot:Li}=xt;var ki=Object.freeze({__proto__:null,toRprLE:Pt,toRprBE:Xt,fromRprLE:Ot,fromRprBE:Zt,toString:Vt,toLEBuff:Kt,zero:jt,one:zt,fromString:Wt,e:Tt,fromArray:_t,bitLength:$t,isNegative:Ai,isZero:Ii,shiftLeft:ti,shiftRight:ii,shl:gi,shr:ei,isOdd:Ci,naf:ni,bits:Qi,toNumber:Bi,toArray:ri,add:oi,sub:Ei,neg:ai,mul:si,square:hi,pow:fi,exp:wi,abs:Di,div:ci,mod:ui,eq:li,neq:yi,lt:pi,gt:Fi,leq:Mi,geq:mi,band:di,bor:Gi,bxor:Hi,land:Ui,lor:bi,lnot:Li});const Ni=[];for(let A=0;A<256;A++)Ni[A]=Ji(A,8);function Ji(A,I){let t=0,i=A;for(let A=0;A<I;A++)t<<=1,t|=1&i,i>>=1;return t}function Si(A,I,t){if(Ii(t))return A.one;const i=Qi(t);if(0==i.legth)return A.one;let g=I;for(let t=i.length-2;t>=0;t--)g=A.square(g),i[t]&&(g=A.mul(g,I));return g}function vi(A){if(A.m%2==1)if(li(ui(A.p,4),1))if(li(ui(A.p,8),1))if(li(ui(A.p,16),1))!function(A){A.sqrt_q=fi(A.p,A.m),A.sqrt_s=0,A.sqrt_t=Ei(A.sqrt_q,1);for(;!Ci(A.sqrt_t);)A.sqrt_s=A.sqrt_s+1,A.sqrt_t=ci(A.sqrt_t,2);let I=A.one;for(;A.eq(I,A.one);){const t=A.random();A.sqrt_z=A.pow(t,A.sqrt_t),I=A.pow(A.sqrt_z,2**(A.sqrt_s-1))}A.sqrt_tm1d2=ci(Ei(A.sqrt_t,1),2),A.sqrt=function(A){const I=this;if(I.isZero(A))return I.zero;let t=I.pow(A,I.sqrt_tm1d2);const i=I.pow(I.mul(I.square(t),A),2**(I.sqrt_s-1));if(I.eq(i,I.negone))return null;let g=I.sqrt_s,e=I.mul(A,t),C=I.mul(e,t),n=I.sqrt_z;for(;!I.eq(C,I.one);){let A=I.square(C),i=1;for(;!I.eq(A,I.one);)A=I.square(A),i++;t=n;for(let A=0;A<g-i-1;A++)t=I.square(t);n=I.square(t),C=I.mul(C,n),e=I.mul(e,t),g=i}return I.geq(e,I.zero)?e:I.neg(e)}}(A);else{if(!li(ui(A.p,16),9))throw new Error("Field withot sqrt");!function(A){A.sqrt=function(){throw new Error("Sqrt alg 4 not implemented")}}(A)}else{if(!li(ui(A.p,8),5))throw new Error("Field withot sqrt");!function(A){A.sqrt=function(){throw new Error("Sqrt alg 3 not implemented")}}(A)}else li(ui(A.p,4),3)&&function(A){A.sqrt_q=fi(A.p,A.m),A.sqrt_e1=ci(Ei(A.sqrt_q,3),4),A.sqrt=function(I){if(this.isZero(I))return this.zero;const t=this.pow(I,this.sqrt_e1),i=this.mul(this.square(t),I);if(this.eq(i,this.negone))return null;const g=this.mul(t,I);return A.geq(g,A.zero)?g:A.neg(g)}}(A);else{const I=ui(fi(A.p,A.m/2),4);1==I?function(A){A.sqrt=function(){throw new Error("Sqrt alg 10 not implemented")}}(A):3==I?function(A){A.sqrt_q=fi(A.p,A.m/2),A.sqrt_e34=ci(Ei(A.sqrt_q,3),4),A.sqrt_e12=ci(Ei(A.sqrt_q,1),2),A.frobenius=function(I,t){return I%2==1?A.conjugate(t):t},A.sqrt=function(A){const I=this,t=I.pow(A,I.sqrt_e34),i=I.mul(I.square(t),A),g=I.mul(I.frobenius(1,i),i);if(I.eq(g,I.negone))return null;const e=I.mul(t,A);let C;if(I.eq(i,I.negone))C=I.mul(e,[I.F.zero,I.F.one]);else{const A=I.pow(I.add(I.one,i),I.sqrt_e12);C=I.mul(A,e)}return I.geq(C,I.zero)?C:I.neg(C)}}(A):function(A){A.sqrt=function(){throw new Error("Sqrt alg 8 not implemented")}}(A)}}function Ri(A){let I=new Uint8Array(A);if("undefined"!=typeof window)if(void 0!==window.crypto)window.crypto.getRandomValues(I);else for(let t=0;t<A;t++)I[t]=4294967296*Math.random()>>>0;else cA.randomFillSync(I);return I}class Yi{constructor(A){this.type="F1",this.one=1n,this.zero=0n,this.p=BigInt(A),this.m=1,this.negone=this.p-1n,this.two=2n,this.half=this.p>>1n,this.bitLength=$t(this.p),this.mask=(1n<<BigInt(this.bitLength))-1n,this.n64=Math.floor((this.bitLength-1)/64)+1,this.n32=2*this.n64,this.n8=8*this.n64,this.R=this.e(1n<<BigInt(64*this.n64)),this.Ri=this.inv(this.R);const I=this.negone>>1n;this.nqr=this.two;let t=this.pow(this.nqr,I);for(;!this.eq(t,this.negone);)this.nqr=this.nqr+1n,t=this.pow(this.nqr,I);for(this.s=0,this.t=this.negone;0n==(1n&this.t);)this.s=this.s+1,this.t=this.t>>1n;this.nqr_to_t=this.pow(this.nqr,this.t),vi(this)}e(A,I){let t;if(I?16==I&&(t=BigInt("0x"+A)):t=BigInt(A),t<0){let A=-t;return A>=this.p&&(A%=this.p),this.p-A}return t>=this.p?t%this.p:t}add(A,I){const t=A+I;return t>=this.p?t-this.p:t}sub(A,I){return A>=I?A-I:this.p-I+A}neg(A){return A?this.p-A:A}mul(A,I){return A*I%this.p}mulScalar(A,I){return A*this.e(I)%this.p}square(A){return A*A%this.p}eq(A,I){return A==I}neq(A,I){return A!=I}lt(A,I){return(A>this.half?A-this.p:A)<(I>this.half?I-this.p:I)}gt(A,I){return(A>this.half?A-this.p:A)>(I>this.half?I-this.p:I)}leq(A,I){return(A>this.half?A-this.p:A)<=(I>this.half?I-this.p:I)}geq(A,I){return(A>this.half?A-this.p:A)>=(I>this.half?I-this.p:I)}div(A,I){return this.mul(A,this.inv(I))}idiv(A,I){if(!I)throw new Error("Division by zero");return A/I}inv(A){if(!A)throw new Error("Division by zero");let I=0n,t=this.p,i=1n,g=A%this.p;for(;g;){let A=t/g;[I,i]=[i,I-A*i],[t,g]=[g,t-A*g]}return I<0n&&(I+=this.p),I}mod(A,I){return A%I}pow(A,I){return Si(this,A,I)}exp(A,I){return Si(this,A,I)}band(A,I){const t=A&I&this.mask;return t>=this.p?t-this.p:t}bor(A,I){const t=(A|I)&this.mask;return t>=this.p?t-this.p:t}bxor(A,I){const t=(A^I)&this.mask;return t>=this.p?t-this.p:t}bnot(A){const I=A^this.mask;return I>=this.p?I-this.p:I}shl(A,I){if(Number(I)<this.bitLength){const t=A<<I&this.mask;return t>=this.p?t-this.p:t}{const t=this.p-I;return Number(t)<this.bitLength?A>>t:0n}}shr(A,I){if(Number(I)<this.bitLength)return A>>I;{const t=this.p-I;if(Number(t)<this.bitLength){const I=A<<t&this.mask;return I>=this.p?I-this.p:I}return 0}}land(A,I){return A&&I?1n:0n}lor(A,I){return A||I?1n:0n}lnot(A){return A?0n:1n}sqrt_old(A){if(0n==A)return this.zero;if(1n!=this.pow(A,this.negone>>this.one))return null;let I=this.s,t=this.nqr_to_t,i=this.pow(A,this.t),g=this.pow(A,this.add(this.t,this.one)>>1n);for(;1n!=i;){let A=this.square(i),e=1;for(;1n!=A;)e++,A=this.square(A);let C=t;for(let A=0;A<I-e-1;A++)C=this.square(C);I=e,t=this.square(C),i=this.mul(i,t),g=this.mul(g,C)}return g>this.p>>1n&&(g=this.neg(g)),g}normalize(A,I){if((A=BigInt(A,I))<0){let I=-A;return I>=this.p&&(I%=this.p),this.p-I}return A>=this.p?A%this.p:A}random(){const A=2*this.bitLength/8;let I=0n;for(let t=0;t<A;t++)I=(I<<8n)+BigInt(Ri(1)[0]);return I%this.p}toString(A,I){let t;if(A>this.half){t="-"+(this.p-A).toString(I)}else t=A.toString(I);return t}isZero(A){return 0n==A}fromRng(A){let I;do{I=0n;for(let t=0;t<this.n64;t++)I+=A.nextU64()<<BigInt(64*t);I&=this.mask}while(I>=this.p);return I=I*this.Ri%this.p,I}}class qi{constructor(A){this.type="F1",this.one=o.one,this.zero=o.zero,this.p=o(A),this.m=1,this.negone=this.p.minus(o.one),this.two=o(2),this.half=this.p.shiftRight(1),this.bitLength=this.p.bitLength(),this.mask=o.one.shiftLeft(this.bitLength).minus(o.one),this.n64=Math.floor((this.bitLength-1)/64)+1,this.n32=2*this.n64,this.n8=8*this.n64,this.R=o.one.shiftLeft(64*this.n64),this.Ri=this.inv(this.R);const I=this.negone.shiftRight(this.one);this.nqr=this.two;let t=this.pow(this.nqr,I);for(;!t.equals(this.negone);)this.nqr=this.nqr.add(this.one),t=this.pow(this.nqr,I);for(this.s=this.zero,this.t=this.negone;!this.t.isOdd();)this.s=this.s.add(this.one),this.t=this.t.shiftRight(this.one);this.nqr_to_t=this.pow(this.nqr,this.t),vi(this)}e(A,I){const t=o(A,I);return this.normalize(t)}add(A,I){let t=A.add(I);return t.geq(this.p)&&(t=t.minus(this.p)),t}sub(A,I){return A.geq(I)?A.minus(I):this.p.minus(I.minus(A))}neg(A){return A.isZero()?A:this.p.minus(A)}mul(A,I){return A.times(I).mod(this.p)}mulScalar(A,I){return A.times(o(I)).mod(this.p)}square(A){return A.square().mod(this.p)}eq(A,I){return A.eq(I)}neq(A,I){return A.neq(I)}lt(A,I){const t=A.gt(this.half)?A.minus(this.p):A,i=I.gt(this.half)?I.minus(this.p):I;return t.lt(i)}gt(A,I){const t=A.gt(this.half)?A.minus(this.p):A,i=I.gt(this.half)?I.minus(this.p):I;return t.gt(i)}leq(A,I){const t=A.gt(this.half)?A.minus(this.p):A,i=I.gt(this.half)?I.minus(this.p):I;return t.leq(i)}geq(A,I){const t=A.gt(this.half)?A.minus(this.p):A,i=I.gt(this.half)?I.minus(this.p):I;return t.geq(i)}div(A,I){if(I.isZero())throw new Error("Division by zero");return A.times(I.modInv(this.p)).mod(this.p)}idiv(A,I){if(I.isZero())throw new Error("Division by zero");return A.divide(I)}inv(A){if(A.isZero())throw new Error("Division by zero");return A.modInv(this.p)}mod(A,I){return A.mod(I)}pow(A,I){return A.modPow(I,this.p)}exp(A,I){return A.modPow(I,this.p)}band(A,I){return A.and(I).and(this.mask).mod(this.p)}bor(A,I){return A.or(I).and(this.mask).mod(this.p)}bxor(A,I){return A.xor(I).and(this.mask).mod(this.p)}bnot(A){return A.xor(this.mask).mod(this.p)}shl(A,I){if(I.lt(this.bitLength))return A.shiftLeft(I).and(this.mask).mod(this.p);{const t=this.p.minus(I);return t.lt(this.bitLength)?this.shr(A,t):o.zero}}shr(A,I){if(I.lt(this.bitLength))return A.shiftRight(I);{const t=this.p.minus(I);return t.lt(this.bitLength)?this.shl(A,t):o.zero}}land(A,I){return A.isZero()||I.isZero()?o.zero:o.one}lor(A,I){return A.isZero()&&I.isZero()?o.zero:o.one}lnot(A){return A.isZero()?o.one:o.zero}sqrt_old(A){if(A.equals(this.zero))return this.zero;if(!this.pow(A,this.negone.shiftRight(this.one)).equals(this.one))return null;let I=parseInt(this.s),t=this.nqr_to_t,i=this.pow(A,this.t),g=this.pow(A,this.add(this.t,this.one).shiftRight(this.one));for(;!i.equals(this.one);){let A=this.square(i),e=1;for(;!A.equals(this.one);)e++,A=this.square(A);let C=t;for(let A=0;A<I-e-1;A++)C=this.square(C);I=e,t=this.square(C),i=this.mul(i,t),g=this.mul(g,C)}return g.greater(this.p.shiftRight(this.one))&&(g=this.neg(g)),g}normalize(A){return(A=o(A)).isNegative()?this.p.minus(A.abs().mod(this.p)):A.mod(this.p)}random(){let A=o(0),I=o(this.p.square());for(;!I.isZero();)A=A.shiftLeft(8).add(o(Ri(1)[0])),I=I.shiftRight(8);return A.mod(this.p)}toString(A,I){let t;if(A.lesserOrEquals(this.p.shiftRight(o(1))))t=A.toString(I);else{t="-"+this.p.minus(A).toString(I)}return t}isZero(A){return A.isZero()}fromRng(A){let I;do{I=o(0);for(let t=0;t<this.n64;t++)I=I.add(I,A.nextU64().shiftLeft(64*t));I=I.and(this.mask)}while(I.geq(this.p));return I=I.times(this.Ri).mod(this.q),I}}const xi="function"==typeof BigInt;let Pi;Pi=xi?Yi:qi;class Xi extends Pi{toRprLE(A,I,t){Pt(A,I,t,8*this.n64)}toRprBE(A,I,t){Xt(A,I,t,8*this.n64)}toRprBEM(A,I,t){return this.toRprBE(A,I,this.mul(this.R,t))}toRprLEM(A,I,t){return this.toRprLE(A,I,this.mul(this.R,t))}fromRprLE(A,I){return Ot(A,I,this.n8)}fromRprBE(A,I){return Zt(A,I,this.n8)}fromRprLEM(A,I){return this.mul(this.fromRprLE(A,I),this.Ri)}fromRprBEM(A,I){return this.mul(this.fromRprBE(A,I),this.Ri)}}var Oi=Object.freeze({__proto__:null,stringifyBigInts:function A(I){if("bigint"==typeof I||void 0!==I.eq)return I.toString(10);if(I instanceof Uint8Array)return Ot(I,0);if(Array.isArray(I))return I.map(A);if("object"==typeof I){const t={};return Object.keys(I).forEach((i=>{t[i]=A(I[i])})),t}return I},unstringifyBigInts:function A(I){if("string"==typeof I&&/^[0-9]+$/.test(I))return BigInt(I);if(Array.isArray(I))return I.map(A);if("object"==typeof I){if(null===I)return null;const t={};return Object.keys(I).forEach((i=>{t[i]=A(I[i])})),t}return I},beBuff2int:function(A){let I=0n,t=A.length,i=0;const g=new DataView(A.buffer,A.byteOffset,A.byteLength);for(;t>0;)t>=4?(t-=4,I+=BigInt(g.getUint32(t))<<BigInt(8*i),i+=4):t>=2?(t-=2,I+=BigInt(g.getUint16(t))<<BigInt(8*i),i+=2):(t-=1,I+=BigInt(g.getUint8(t))<<BigInt(8*i),i+=1);return I},beInt2Buff:function(A,I){let t=A;const i=new Uint8Array(I),g=new DataView(i.buffer);let e=I;for(;e>0;)e-4>=0?(e-=4,g.setUint32(e,Number(0xFFFFFFFFn&t)),t>>=32n):e-2>=0?(e-=2,g.setUint16(e,Number(0xFFFFn&t)),t>>=16n):(e-=1,g.setUint8(e,Number(0xFFn&t)),t>>=8n);if(t)throw new Error("Number does not fit in this length");return i},leBuff2int:function(A){let I=0n,t=0;const i=new DataView(A.buffer,A.byteOffset,A.byteLength);for(;t<A.length;)t+4<=A.length?(I+=BigInt(i.getUint32(t,!0))<<BigInt(8*t),t+=4):t+4<=A.length?(I+=BigInt(i.getUint16(t,!0))<<BigInt(8*t),t+=2):(I+=BigInt(i.getUint8(t,!0))<<BigInt(8*t),t+=1);return I},leInt2Buff:function(A,I){let t=A;void 0===I&&0==(I=Math.floor(($t(A)-1)/8)+1)&&(I=1);const i=new Uint8Array(I),g=new DataView(i.buffer);let e=0;for(;e<I;)e+4<=I?(g.setUint32(e,Number(0xFFFFFFFFn&t),!0),e+=4,t>>=32n):e+2<=I?(g.setUint16(Number(e,0xFFFFn&t),!0),e+=2,t>>=16n):(g.setUint8(Number(e,0xFFn&t),!0),e+=1,t>>=8n);if(t)throw new Error("Number does not fit in this length");return i}});var Zi=Object.freeze({__proto__:null,stringifyBigInts:function A(I){if("bigint"==typeof I||void 0!==I.eq)return I.toString(10);if(Array.isArray(I))return I.map(A);if("object"==typeof I){const t={};return Object.keys(I).forEach((i=>{t[i]=A(I[i])})),t}return I},unstringifyBigInts:function A(I){if("string"==typeof I&&/^[0-9]+$/.test(I))return o(I);if(Array.isArray(I))return I.map(A);if("object"==typeof I){const t={};return Object.keys(I).forEach((i=>{t[i]=A(I[i])})),t}return I},beBuff2int:function(A){let I=o.zero;for(let t=0;t<A.length;t++){const i=o(A[A.length-t-1]);I=I.add(i.shiftLeft(8*t))}return I},beInt2Buff:function(A,I){let t=A,i=I-1;const g=new Uint8Array(I);for(;t.gt(o.zero)&&i>=0;){let A=Number(t.and(o("255")));g[i]=A,i--,t=t.shiftRight(8)}if(!t.eq(o.zero))throw new Error("Number does not fit in this length");return g},leBuff2int:function(A){let I=o.zero;for(let t=0;t<A.length;t++){const i=o(A[t]);I=I.add(i.shiftLeft(8*t))}return I},leInt2Buff:function(A,I){let t=A,i=0;const g=new Uint8Array(I);for(;t.gt(o.zero)&&i<g.length;){let A=Number(t.and(o(255)));g[i]=A,i++,t=t.shiftRight(8)}if(!t.eq(o.zero))throw new Error("Number does not fit in this length");return g}});let Vi={};"function"==typeof BigInt?Object.assign(Vi,Oi):Object.assign(Vi,Zi);const Ki=[];for(let A=0;A<256;A++)Ki[A]=ji(A,8);function ji(A,I){let t=0,i=A;for(let A=0;A<I;A++)t<<=1,t|=1&i,i>>=1;return t}Vi.bitReverse=function(A,I){return(Ki[A>>>24]|Ki[A>>>16&255]<<8|Ki[A>>>8&255]<<16|Ki[255&A]<<24)>>>32-I},Vi.log2=function(A){return(0!=(4294901760&A)?(A&=4294901760,16):0)|(0!=(4278255360&A)?(A&=4278255360,8):0)|(0!=(4042322160&A)?(A&=4042322160,4):0)|(0!=(3435973836&A)?(A&=3435973836,2):0)|0!=(2863311530&A)},Vi.buffReverseBits=function(A,I){const t=A.byteLength/I,i=Vi.log2(t);if(t!=1<<i)throw new Error("Invalid number of pointers");for(let g=0;g<t;g++){const t=Vi.bitReverse(g,i);if(g>t){const i=A.slice(g*I,(g+1)*I);A.set(A.slice(t*I,(t+1)*I),g*I),A.set(i,t*I)}}};!function(A){window.btoa(A)}("("+function(A){const I=32767;let t,i;async function g(A){const g=new Uint8Array(A.code),e=await WebAssembly.compile(g);i=new WebAssembly.Memory({initial:A.init,maximum:I}),t=await WebAssembly.instantiate(e,{env:{memory:i}})}function e(A){const t=new Uint32Array(i.buffer,0,1);for(;3&t[0];)t[0]++;const g=t[0];if(t[0]+=A,t[0]+A>i.buffer.byteLength){const g=i.buffer.byteLength/65536;let e=Math.floor((t[0]+A)/65536)+1;e>I&&(e=I),i.grow(e-g)}return g}function C(A){const I=e(A.byteLength);return Q(I,A),I}function n(A,I){const t=new Uint8Array(i.buffer);return new Uint8Array(t.buffer,t.byteOffset+A,I)}function Q(A,I){new Uint8Array(i.buffer).set(new Uint8Array(I),A)}function B(A){if("INIT"==A[0].cmd)return g(A[0]);const I={vars:[],out:[]},B=new Uint32Array(i.buffer,0,1)[0];for(let i=0;i<A.length;i++)switch(A[i].cmd){case"ALLOCSET":I.vars[A[i].var]=C(A[i].buff);break;case"ALLOC":I.vars[A[i].var]=e(A[i].len);break;case"SET":Q(I.vars[A[i].var],A[i].buff);break;case"CALL":{const g=[];for(let t=0;t<A[i].params.length;t++){const e=A[i].params[t];void 0!==e.var?g.push(I.vars[e.var]+(e.offset||0)):void 0!==e.val&&g.push(e.val)}t.exports[A[i].fnName](...g);break}case"GET":I.out[A[i].out]=n(I.vars[A[i].var],A[i].len).slice();break;default:throw new Error("Invalid cmd")}return new Uint32Array(i.buffer,0,1)[0]=B,I.out}return A&&(A.onmessage=function(I){let t;if(t=I.data?I.data:I,"INIT"==t[0].cmd)g(t[0]).then((function(){A.postMessage(t.result)}));else if("TERMINATE"==t[0].cmd)process.exit();else{const I=B(t);A.postMessage(I)}}),B}.toString()+")(self)");GA.curve_bn128=null,GA.curve_bls12381=null;Tt("73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001",16),Tt("21888242871839275222246405745257275088548364400416034343698204186575808495617"),Tt("1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaaab",16),Tt("21888242871839275222246405745257275088696311157297823662689037894645226208583");const zi=ki;async function Wi(A,I){I=I||{};let t,i=32767,g=!1;for(;!g;)try{t=new WebAssembly.Memory({initial:i}),g=!0}catch(A){if(1===i)throw A;console.warn("Could not allocate "+1024*i*64+" bytes. This may cause severe instability. Trying with "+1024*i*64/2+" bytes"),i=Math.floor(i/2)}const e=await WebAssembly.compile(A);let C;const n=await WebAssembly.instantiate(e,{env:{memory:t},runtime:{error:function(A,t,i,g,e,n){let Q;throw Q=7==A?B(t)+" "+C.getFr(g).toString()+" != "+C.getFr(e).toString()+" "+B(n):9==A?B(t)+" "+C.getFr(g).toString()+" "+B(e):5==A&&I.sym?B(t)+" "+I.sym.labelIdx2Name[e]:B(t)+" "+i+" "+g+" "+e+" "+n,console.log("ERROR: ",A,Q),new Error(Q)},log:function(A){console.log(C.getFr(A).toString())},logGetSignal:function(A,t){I.logGetSignal&&I.logGetSignal(A,C.getFr(t))},logSetSignal:function(A,t){I.logSetSignal&&I.logSetSignal(A,C.getFr(t))},logStartComponent:function(A){I.logStartComponent&&I.logStartComponent(A)},logFinishComponent:function(A){I.logFinishComponent&&I.logFinishComponent(A)}}}),Q=I&&(I.sanityCheck||I.logGetSignal||I.logSetSignal||I.logStartComponent||I.logFinishComponent);return C=new Ti(t,n,Q),C;function B(A){const I=new Uint8Array(t.buffer),i=[];for(let t=0;I[A+t]>0;t++)i.push(I[A+t]);return String.fromCharCode.apply(null,i)}}class Ti{constructor(A,I,t){this.memory=A,this.i32=new Uint32Array(A.buffer),this.instance=I,this.n32=(this.instance.exports.getFrLen()>>2)-2;const i=this.instance.exports.getPRawPrime(),g=new Array(this.n32);for(let A=0;A<this.n32;A++)g[this.n32-1-A]=this.i32[(i>>2)+A];this.prime=zi.fromArray(g,4294967296),this.Fr=new Xi(this.prime),this.mask32=zi.fromString("FFFFFFFF",16),this.NVars=this.instance.exports.getNVars(),this.n64=Math.floor((this.Fr.bitLength-1)/64)+1,this.R=this.Fr.e(zi.shiftLeft(1,64*this.n64)),this.RInv=this.Fr.inv(this.R),this.sanityCheck=t}async _doCalculateWitness(A,I){this.instance.exports.init(this.sanityCheck||I?1:0);const t=this.allocInt(),i=this.allocFr();Object.keys(A).forEach((I=>{const g=function(A){return Ft.hash(A,64).hex()}(I),e=parseInt(g.slice(0,8),16),C=parseInt(g.slice(8,16),16);try{this.instance.exports.getSignalOffset32(t,0,e,C)}catch(A){throw new Error(`Signal ${I} is not an input of the circuit.`)}const n=this.getInt(t),Q=(B=A[I],function A(I,t){if(Array.isArray(t))for(let i=0;i<t.length;i++)A(I,t[i]);else I.push(t)}(r=[],B),r);var B,r;for(let A=0;A<Q.length;A++)this.setFr(i,Q[A]),this.instance.exports.setSignal(0,0,n+A,i)}))}async calculateWitness(A,I){const t=this,i=t.i32[0],g=[];await t._doCalculateWitness(A,I);for(let A=0;A<t.NVars;A++){const I=t.instance.exports.getPWitness(A);g.push(t.getFr(I))}return t.i32[0]=i,g}async calculateBinWitness(A,I){const t=this,i=t.i32[0];await t._doCalculateWitness(A,I);const g=t.instance.exports.getWitnessBuffer();t.i32[0]=i;const e=t.memory.buffer.slice(g,g+t.NVars*t.n64*8);return new Uint8Array(e)}allocInt(){const A=this.i32[0];return this.i32[0]=A+8,A}allocFr(){const A=this.i32[0];return this.i32[0]=A+4*this.n32+8,A}getInt(A){return this.i32[A>>2]}setInt(A,I){this.i32[A>>2]=I}getFr(A){const I=this,t=A>>2;if(2147483648&I.i32[t+1]){const A=new Array(I.n32);for(let i=0;i<I.n32;i++)A[I.n32-1-i]=I.i32[t+2+i];const g=I.Fr.e(zi.fromArray(A,4294967296));return 1073741824&I.i32[t+1]?(i=g,I.Fr.mul(I.RInv,i)):g}return 2147483648&I.i32[t]?I.Fr.e(I.i32[t]-4294967296):I.Fr.e(I.i32[t]);var i}setFr(A,I){const t=this;I=t.Fr.e(I);const i=t.Fr.neg(t.Fr.e("80000000",16)),g=t.Fr.e("7FFFFFFF",16);if(t.Fr.geq(I,i)&&t.Fr.leq(I,g)){let g;return t.Fr.geq(I,t.Fr.zero)?g=zi.toNumber(I):(g=zi.toNumber(t.Fr.sub(I,i)),g-=2147483648,g=4294967296+g),t.i32[A>>2]=g,void(t.i32[1+(A>>2)]=0)}t.i32[A>>2]=0,t.i32[1+(A>>2)]=2147483648;const e=zi.toArray(I,4294967296);for(let I=0;I<t.n32;I++){const i=e.length-1-I;t.i32[2+(A>>2)+I]=i>=0?e[i]:0}}}async function _i(A,I,t,i){const g=await UI(I),e=await g.read(g.totalSize);await g.close();const C=await Wi(e),n=await C.calculateBinWitness(A),Q=await LI(t,"wtns",2,2);await async function(A,I,t){await kI(A,1);const i=8*(Math.floor((aI.bitLength(t)-1)/64)+1);if(await A.writeULE32(i),await vI(A,t,i),I.byteLength%i!=0)throw new Error("Invalid witness length");await A.writeULE32(I.byteLength/i),await NI(A),await kI(A,2),await A.write(I),await NI(A)}(Q,n,C.prime),await Q.close()}const{unstringifyBigInts:$i}=sI;function Ag(A){let I=A.toString(16);for(;I.length<64;)I="0"+I;return I=`"0x${I}"`,I}var Ig=Object.freeze({__proto__:null,fullProve:async function(A,I,t,i){const g={type:"mem"};return await _i(A,I,g),await pt(t,g,i)},prove:pt,verify:async function(A,I,t,i){A=$i(A),t=$i(t),I=$i(I);const g=await ZI(A.curve),e=g.G1.fromObject(A.IC[0]),C=new Uint8Array(2*g.G1.F.n8*I.length),n=new Uint8Array(g.Fr.n8*I.length);for(let t=0;t<I.length;t++){const i=g.G1.fromObject(A.IC[t+1]);C.set(i,t*g.G1.F.n8*2),aI.toRprLE(n,g.Fr.n8*t,I[t],g.Fr.n8)}let Q=await g.G1.multiExpAffine(C,n);Q=g.G1.add(Q,e);const B=g.G1.fromObject(t.pi_a),r=g.G2.fromObject(t.pi_b),o=g.G1.fromObject(t.pi_c),E=g.G2.fromObject(A.vk_gamma_2),a=g.G2.fromObject(A.vk_delta_2),s=g.G1.fromObject(A.vk_alpha_1),h=g.G2.fromObject(A.vk_beta_2);return await g.pairingEq(g.G1.neg(B),r,Q,E,o,a,s,h)?(i&&i.info("OK!"),!0):(i&&i.error("Invalid proof"),!1)},exportSolidityCallData:async function(A,I){let t,i="";for(let A=0;A<I.length;A++)""!=i&&(i+=","),i+=Ag(I[A]);return t=`[${Ag(A.pi_a[0])}, ${Ag(A.pi_a[1])}],[[${Ag(A.pi_b[0][1])}, ${Ag(A.pi_b[0][0])}],[${Ag(A.pi_b[1][1])}, ${Ag(A.pi_b[1][0])}]],[${Ag(A.pi_c[0])}, ${Ag(A.pi_c[1])}],[${i}]`,t}});function tg(A,I){const t=new DataView(I.buffer,I.byteOffset,I.byteLength),i=[];for(let A=0;A<8;A++)i[A]=t.getUint32(4*A);const g=new DA(i);return A.G2.fromRng(g)}function ig(A,I,t,i,g){const e=TI(64),C=new Uint8Array([I]);e.update(C),e.update(t);const n=A.G1.toUncompressed(i);e.update(n);const Q=A.G1.toUncompressed(g);e.update(Q);return tg(A,e.digest())}function gg(A,I,t,i,g){return A.g1_s=I.G1.toAffine(I.G1.fromRng(g)),A.g1_sx=I.G1.toAffine(I.G1.timesFr(A.g1_s,A.prvKey)),A.g2_sp=I.G2.toAffine(ig(I,t,i,A.g1_s,A.g1_sx)),A.g2_spx=I.G2.toAffine(I.G2.timesFr(A.g2_sp,A.prvKey)),A}function eg(A,I,t){const i={tau:{},alpha:{},beta:{}};return i.tau.prvKey=A.Fr.fromRng(t),i.alpha.prvKey=A.Fr.fromRng(t),i.beta.prvKey=A.Fr.fromRng(t),gg(i.tau,A,0,I,t),gg(i.alpha,A,1,I,t),gg(i.beta,A,2,I,t),i}async function Cg(A,I,t,i){i||(i=t),await A.writeULE32(1);const g=A.pos;await A.writeULE64(0),await A.writeULE32(8*I.F1.n64);const e=new Uint8Array(I.F1.n8);aI.toRprLE(e,0,I.q,I.F1.n8),await A.write(e),await A.writeULE32(t),await A.writeULE32(i);const C=A.pos-g-8,n=A.pos;await A.writeULE64(C,g),A.pos=n}async function ng(A,I){if(!I[1])throw new Error(A.fileName+": File has no header");if(I[1].length>1)throw new Error(A.fileName+": File has more than one header");A.pos=I[1][0].p;const t=await A.readULE32(),i=await A.read(t),g=aI.fromRprLE(i),e=await OI(g);if(8*e.F1.n64!=t)throw new Error(A.fileName+": Invalid size");const C=await A.readULE32(),n=await A.readULE32();if(A.pos-I[1][0].p!=I[1][0].size)throw new Error("Invalid PTau header size");return{curve:e,power:C,ceremonyPower:n}}function Qg(A,I,t,i){const g={tau:{},alpha:{},beta:{}};return g.tau.g1_s=e(),g.tau.g1_sx=e(),g.alpha.g1_s=e(),g.alpha.g1_sx=e(),g.beta.g1_s=e(),g.beta.g1_sx=e(),g.tau.g2_spx=C(),g.alpha.g2_spx=C(),g.beta.g2_spx=C(),g;function e(){let g;return g=i?t.G1.fromRprLEM(A,I):t.G1.fromRprUncompressed(A,I),I+=2*t.G1.F.n8,g}function C(){let g;return g=i?t.G2.fromRprLEM(A,I):t.G2.fromRprUncompressed(A,I),I+=2*t.G2.F.n8,g}}function Bg(A,I,t,i,g){async function e(i){g?t.G1.toRprLEM(A,I,i):t.G1.toRprUncompressed(A,I,i),I+=2*t.F1.n8}async function C(i){g?t.G2.toRprLEM(A,I,i):t.G2.toRprUncompressed(A,I,i),I+=2*t.F2.n8}return e(i.tau.g1_s),e(i.tau.g1_sx),e(i.alpha.g1_s),e(i.alpha.g1_sx),e(i.beta.g1_s),e(i.beta.g1_sx),C(i.tau.g2_spx),C(i.alpha.g2_spx),C(i.beta.g2_spx),A}async function rg(A,I){const t={};t.tauG1=await Q(),t.tauG2=await B(),t.alphaG1=await Q(),t.betaG1=await Q(),t.betaG2=await B(),t.key=await async function(A,I,t){return Qg(await A.read(2*I.F1.n8*6+2*I.F2.n8*3),0,I,t)}(A,I,!0),t.partialHash=await A.read(216),t.nextChallenge=await A.read(64),t.type=await A.readULE32();const i=new Uint8Array(2*I.G1.F.n8*6+2*I.G2.F.n8*3);Bg(i,0,I,t.key,!1);const g=TI(64);g.setPartialHash(t.partialHash),g.update(i),t.responseHash=g.digest();const e=await A.readULE32(),C=A.pos;let n=0;for(;A.pos-C<e;){const A=await r(1);if(A[0]<=n)throw new Error("Parameters in the contribution must be sorted");if(n=A[0],1==A[0]){const A=await r(1),I=await r(A[0]);t.name=(new TextDecoder).decode(I)}else if(2==A[0]){const A=await r(1);t.numIterationsExp=A[0]}else{if(3!=A[0])throw new Error("Parameter not recognized");{const A=await r(1);t.beaconHash=await r(A[0])}}}if(A.pos!=C+e)throw new Error("Parametes do not match");return t;async function Q(){const t=await A.read(2*I.G1.F.n8);return I.G1.fromRprLEM(t)}async function B(){const t=await A.read(2*I.G2.F.n8);return I.G2.fromRprLEM(t)}async function r(I){const t=await A.read(I);return new Uint8Array(t)}}async function og(A,I,t){if(!t[7])throw new Error(A.fileName+": File has no contributions");if(t[7][0].length>1)throw new Error(A.fileName+": File has more than one contributions section");A.pos=t[7][0].p;const i=await A.readULE32(),g=[];for(let t=0;t<i;t++){const i=await rg(A,I);i.id=t+1,g.push(i)}if(A.pos-t[7][0].p!=t[7][0].size)throw new Error("Invalid contribution section size");return g}async function Eg(A,I,t){const i=new Uint8Array(2*I.F1.n8),g=new Uint8Array(2*I.F2.n8);await C(t.tauG1),await n(t.tauG2),await C(t.alphaG1),await C(t.betaG1),await n(t.betaG2),await async function(A,I,t,i){const g=new Uint8Array(2*I.F1.n8*6+2*I.F2.n8*3);Bg(g,0,I,t,i),await A.write(g)}(A,I,t.key,!0),await A.write(t.partialHash),await A.write(t.nextChallenge),await A.writeULE32(t.type||0);const e=[];if(t.name){e.push(1);const A=new TextEncoder("utf-8").encode(t.name.substring(0,64));e.push(A.byteLength);for(let I=0;I<A.byteLength;I++)e.push(A[I])}if(1==t.type){e.push(2),e.push(t.numIterationsExp),e.push(3),e.push(t.beaconHash.byteLength);for(let A=0;A<t.beaconHash.byteLength;A++)e.push(t.beaconHash[A])}if(e.length>0){const I=new Uint8Array(e);await A.writeULE32(I.byteLength),await A.write(I)}else await A.writeULE32(0);async function C(t){I.G1.toRprLEM(i,0,t),await A.write(i)}async function n(t){I.G2.toRprLEM(g,0,t),await A.write(g)}}async function ag(A,I,t){await A.writeULE32(7);const i=A.pos;await A.writeULE64(0),await A.writeULE32(t.length);for(let i=0;i<t.length;i++)await Eg(A,I,t[i]);const g=A.pos-i-8,e=A.pos;await A.writeULE64(g,i),A.pos=e}function sg(A,I,t){t&&t.debug("Calculating First Challenge Hash");const i=new TI(64),g=new Uint8Array(2*A.G1.F.n8),e=new Uint8Array(2*A.G2.F.n8);let C;return A.G1.toRprUncompressed(g,0,A.G1.g),A.G2.toRprUncompressed(e,0,A.G2.g),i.update(TI(64).digest()),C=2**I*2-1,t&&t.debug("Calculate Initial Hash: tauG1"),n(g,C),C=2**I,t&&t.debug("Calculate Initial Hash: tauG2"),n(e,C),t&&t.debug("Calculate Initial Hash: alphaTauG1"),n(g,C),t&&t.debug("Calculate Initial Hash: betaTauG1"),n(g,C),i.update(e),i.digest();function n(A,I){const g=5e5,e=Math.floor(I/g),C=I%g,n=new Uint8Array(g*A.byteLength);for(let I=0;I<g;I++)n.set(A,I*A.byteLength);for(let A=0;A<e;A++)i.update(n),t&&t.debug("Initial hash: "+A*g);for(let I=0;I<C;I++)i.update(A)}}function hg(A,I,t,i){return eg(A,I,Ct(t,i))}const fg=gt;async function wg(A,I,t,i){let g;if(1==I.type){const g=hg(A,t.nextChallenge,I.beaconHash,I.numIterationsExp);if(!A.G1.eq(I.key.tau.g1_s,g.tau.g1_s))return i&&i.error(`BEACON key (tauG1_s) is not generated correctly in challenge #${I.id} ${I.name||""}`),!1;if(!A.G1.eq(I.key.tau.g1_sx,g.tau.g1_sx))return i&&i.error(`BEACON key (tauG1_sx) is not generated correctly in challenge #${I.id} ${I.name||""}`),!1;if(!A.G2.eq(I.key.tau.g2_spx,g.tau.g2_spx))return i&&i.error(`BEACON key (tauG2_spx) is not generated correctly in challenge #${I.id} ${I.name||""}`),!1;if(!A.G1.eq(I.key.alpha.g1_s,g.alpha.g1_s))return i&&i.error(`BEACON key (alphaG1_s) is not generated correctly in challenge #${I.id} ${I.name||""}`),!1;if(!A.G1.eq(I.key.alpha.g1_sx,g.alpha.g1_sx))return i&&i.error(`BEACON key (alphaG1_sx) is not generated correctly in challenge #${I.id} ${I.name||""}`),!1;if(!A.G2.eq(I.key.alpha.g2_spx,g.alpha.g2_spx))return i&&i.error(`BEACON key (alphaG2_spx) is not generated correctly in challenge #${I.id} ${I.name||""}`),!1;if(!A.G1.eq(I.key.beta.g1_s,g.beta.g1_s))return i&&i.error(`BEACON key (betaG1_s) is not generated correctly in challenge #${I.id} ${I.name||""}`),!1;if(!A.G1.eq(I.key.beta.g1_sx,g.beta.g1_sx))return i&&i.error(`BEACON key (betaG1_sx) is not generated correctly in challenge #${I.id} ${I.name||""}`),!1;if(!A.G2.eq(I.key.beta.g2_spx,g.beta.g2_spx))return i&&i.error(`BEACON key (betaG2_spx) is not generated correctly in challenge #${I.id} ${I.name||""}`),!1}return I.key.tau.g2_sp=A.G2.toAffine(ig(A,0,t.nextChallenge,I.key.tau.g1_s,I.key.tau.g1_sx)),I.key.alpha.g2_sp=A.G2.toAffine(ig(A,1,t.nextChallenge,I.key.alpha.g1_s,I.key.alpha.g1_sx)),I.key.beta.g2_sp=A.G2.toAffine(ig(A,2,t.nextChallenge,I.key.beta.g1_s,I.key.beta.g1_sx)),g=await fg(A,I.key.tau.g1_s,I.key.tau.g1_sx,I.key.tau.g2_sp,I.key.tau.g2_spx),!0!==g?(i&&i.error("INVALID key (tau) in challenge #"+I.id),!1):(g=await fg(A,I.key.alpha.g1_s,I.key.alpha.g1_sx,I.key.alpha.g2_sp,I.key.alpha.g2_spx),!0!==g?(i&&i.error("INVALID key (alpha) in challenge #"+I.id),!1):(g=await fg(A,I.key.beta.g1_s,I.key.beta.g1_sx,I.key.beta.g2_sp,I.key.beta.g2_spx),!0!==g?(i&&i.error("INVALID key (beta) in challenge #"+I.id),!1):(g=await fg(A,t.tauG1,I.tauG1,I.key.tau.g2_sp,I.key.tau.g2_spx),!0!==g?(i&&i.error("INVALID tau*G1. challenge #"+I.id+" It does not follow the previous contribution"),!1):(g=await fg(A,I.key.tau.g1_s,I.key.tau.g1_sx,t.tauG2,I.tauG2),!0!==g?(i&&i.error("INVALID tau*G2. challenge #"+I.id+" It does not follow the previous contribution"),!1):(g=await fg(A,t.alphaG1,I.alphaG1,I.key.alpha.g2_sp,I.key.alpha.g2_spx),!0!==g?(i&&i.error("INVALID alpha*G1. challenge #"+I.id+" It does not follow the previous contribution"),!1):(g=await fg(A,t.betaG1,I.betaG1,I.key.beta.g2_sp,I.key.beta.g2_spx),!0!==g?(i&&i.error("INVALID beta*G1. challenge #"+I.id+" It does not follow the previous contribution"),!1):(g=await fg(A,I.key.beta.g1_s,I.key.beta.g1_sx,t.betaG2,I.betaG2),!0!==g?(i&&i.error("INVALID beta*G2. challenge #"+I.id+"It does not follow the previous contribution"),!1):(i&&i.info("Powers Of tau file OK!"),!0))))))))}async function Dg(A,I,t,i,g,e,C,n,Q,B){const r=g[e],o=2*r.F.n8,E=I[i][0].size/o;await JI(A,I,i),await kI(t,i);let a=C;for(let I=0;I<E;I+=65536){B&&B.debug(`Applying key: ${Q}: ${I}/${E}`);const i=Math.min(E-I,65536);let e;e=await A.read(i*o),e=await r.batchApplyKey(e,a,n),await t.write(e),a=g.Fr.mul(a,g.Fr.exp(n,i))}await NI(t),await SI(A)}async function cg(A,I,t,i,g,e,C,n,Q,B,r){const o=i[g],E=2*o.F.n8,a=Math.floor((1<<20)/E);let s=C;for(let g=0;g<e;g+=a){r&&r.debug(`Applying key ${B}: ${g}/${e}`);const C=Math.min(e-g,a),h=await A.read(C*E),f=await o.batchUtoLEM(h),w=await o.batchApplyKey(f,s,n);let D;D="COMPRESSED"==Q?await o.batchLEMtoC(w):await o.batchLEMtoU(w),t&&t.update(D),await I.write(D),s=i.Fr.mul(s,i.Fr.exp(n,C))}}var ug=Object.freeze({__proto__:null,newAccumulator:async function(A,I,t,i){await TI.ready();const g=await LI(t,"ptau",1,7);await Cg(g,A,I,0);const e=A.G1.oneAffine,C=A.G2.oneAffine;await kI(g,2);const n=2**I*2-1;for(let A=0;A<n;A++)await g.write(e),i&&A%1e5==0&&A&&i.log("tauG1: "+A);await NI(g),await kI(g,3);const Q=2**I;for(let A=0;A<Q;A++)await g.write(C),i&&A%1e5==0&&A&&i.log("tauG2: "+A);await NI(g),await kI(g,4);const B=2**I;for(let A=0;A<B;A++)await g.write(e),i&&A%1e5==0&&A&&i.log("alphaTauG1: "+A);await NI(g),await kI(g,5);const r=2**I;for(let A=0;A<r;A++)await g.write(e),i&&A%1e5==0&&A&&i.log("betaTauG1: "+A);await NI(g),await kI(g,6),await g.write(C),await NI(g),await kI(g,7),await g.writeULE32(0),await NI(g),await g.close();const o=sg(A,I,i);return i&&i.debug(It(TI(64).digest(),"Blank Contribution Hash:")),i&&i.info(It(o,"First Contribution Hash:")),o},exportChallenge:async function(A,I,t){await TI.ready();const{fd:i,sections:g}=await bI(A,"ptau",1),{curve:e,power:C}=await ng(i,g),n=await og(i,e,g);let Q,B;0==n.length?(Q=TI(64).digest(),B=sg(e,C)):(Q=n[n.length-1].responseHash,B=n[n.length-1].nextChallenge),t&&t.info(It(Q,"Last Response Hash: ")),t&&t.info(It(B,"New Challenge Hash: "));const r=await HI(I),o=TI(64);await r.write(Q),o.update(Q),await a(2,"G1",2**C*2-1,"tauG1"),await a(3,"G2",2**C,"tauG2"),await a(4,"G1",2**C,"alphaTauG1"),await a(5,"G1",2**C,"betaTauG1"),await a(6,"G2",1,"betaG2"),await i.close(),await r.close();const E=o.digest();if(!tt(B,E))throw t&&t.info(It(E,"Calc Curret Challenge Hash: ")),t&&t.error("PTau file is corrupted. Calculated new challenge hash does not match with the eclared one"),new Error("PTau file is corrupted. Calculated new challenge hash does not match with the eclared one");return B;async function a(A,I,C,n){const Q=e[I],B=2*Q.F.n8,E=Math.floor((1<<24)/B);await JI(i,g,A);for(let A=0;A<C;A+=E){t&&t.debug(`Exporting ${n}: ${A}/${C}`);const I=Math.min(C-A,E);let g;g=await i.read(I*B),g=await Q.batchLEMtoU(g),await r.write(g),o.update(g)}await SI(i)}},importResponse:async function(A,I,t,i,g,e){await TI.ready();const C=new Uint8Array(64);for(let A=0;A<64;A++)C[A]=255;const{fd:n,sections:Q}=await bI(A,"ptau",1),{curve:B,power:r}=await ng(n,Q),o=await og(n,B,Q),E={};i&&(E.name=i);const a=2*B.F1.n8,s=B.F1.n8,h=2*B.F2.n8,f=B.F2.n8,w=await UI(I);if(w.totalSize!=64+(2**r*2-1)*s+2**r*f+2**r*s+2**r*s+f+6*a+3*h)throw new Error("Size of the contribution is invalid");let D;D=o.length>0?o[o.length-1].nextChallenge:sg(B,r,e);const c=await LI(t,"ptau",1,g?7:2);await Cg(c,B,r);const u=await w.read(64);if(tt(C,D)&&(D=u,o[o.length-1].nextChallenge=D),!tt(u,D))throw new Error("Wrong contribution. this contribution is not based on the previus hash");const l=new TI(64);l.update(u);const y=[];let p;p=await m(w,c,"G1",2,2**r*2-1,[1],"tauG1"),E.tauG1=p[0],p=await m(w,c,"G2",3,2**r,[1],"tauG2"),E.tauG2=p[0],p=await m(w,c,"G1",4,2**r,[0],"alphaG1"),E.alphaG1=p[0],p=await m(w,c,"G1",5,2**r,[0],"betaG1"),E.betaG1=p[0],p=await m(w,c,"G2",6,1,[0],"betaG2"),E.betaG2=p[0],E.partialHash=l.getPartialHash();const F=await w.read(2*B.F1.n8*6+2*B.F2.n8*3);E.key=Qg(F,0,B,!1),l.update(new Uint8Array(F));const M=l.digest();if(e&&e.info(It(M,"Contribution Response Hash imported: ")),g){const A=new TI(64);A.update(M),await d(A,c,"G1",2,2**r*2-1,"tauG1",e),await d(A,c,"G2",3,2**r,"tauG2",e),await d(A,c,"G1",4,2**r,"alphaTauG1",e),await d(A,c,"G1",5,2**r,"betaTauG1",e),await d(A,c,"G2",6,1,"betaG2",e),E.nextChallenge=A.digest(),e&&e.info(It(E.nextChallenge,"Next Challenge Hash: "))}else E.nextChallenge=C;return o.push(E),await ag(c,B,o),await w.close(),await c.close(),await n.close(),E.nextChallenge;async function m(A,I,t,i,C,n,Q){return g?await async function(A,I,t,i,g,C,n){const Q=B[t],r=Q.F.n8,o=2*Q.F.n8,E=[];await kI(I,i);const a=Math.floor((1<<24)/o);y[i]=I.pos;for(let t=0;t<g;t+=a){e&&e.debug(`Importing ${n}: ${t}/${g}`);const i=Math.min(g-t,a),B=await A.read(i*r);l.update(B);const s=await Q.batchCtoLEM(B);await I.write(s);for(let A=0;A<C.length;A++){const I=C[A];if(I>=t&&I<t+i){const A=Q.fromRprLEM(s,(I-t)*o);E.push(A)}}}return await NI(I),E}(A,I,t,i,C,n,Q):await async function(A,I,t,i,g,C,n){const Q=B[t],r=Q.F.n8,o=[],E=Math.floor((1<<24)/r);for(let I=0;I<g;I+=E){e&&e.debug(`Importing ${n}: ${I}/${g}`);const t=Math.min(g-I,E),i=await A.read(t*r);l.update(i);for(let A=0;A<C.length;A++){const g=C[A];if(g>=I&&g<I+t){const A=Q.fromRprCompressed(i,(g-I)*r);o.push(A)}}}return o}(A,0,t,0,C,n,Q)}async function d(A,I,t,i,g,e,C){const n=B[t],Q=2*n.F.n8,r=Math.floor((1<<24)/Q),o=I.pos;I.pos=y[i];for(let t=0;t<g;t+=r){C&&C.debug(`Hashing ${e}: ${t}/${g}`);const i=Math.min(g-t,r),B=await I.read(i*Q),o=await n.batchLEMtoU(B);A.update(o)}I.pos=o}},verify:async function(A,I){let t;await TI.ready();const{fd:i,sections:g}=await bI(A,"ptau",1),{curve:e,power:C,ceremonyPower:n}=await ng(i,g),Q=await og(i,e,g);I&&I.debug("power: 2**"+C),I&&I.debug("Computing initial contribution hash");const B={tauG1:e.G1.g,tauG2:e.G2.g,alphaG1:e.G1.g,betaG1:e.G1.g,betaG2:e.G2.g,nextChallenge:sg(e,n,I),responseHash:TI(64).digest()};if(0==Q.length)return I&&I.error("This file has no contribution! It cannot be used in production"),!1;let r;r=Q.length>1?Q[Q.length-2]:B;const o=Q[Q.length-1];if(I&&I.debug("Validating contribution #"+Q[Q.length-1].id),!await wg(e,o,r,I))return!1;const E=TI(64);E.update(o.responseHash),I&&I.debug("Verifying powers in tau*G1 section");const a=await u(2,"G1","tauG1",2**C*2-1,[0,1],I);if(t=await fg(e,a.R1,a.R2,e.G2.g,o.tauG2),!0!==t)return I&&I.error("tauG1 section. Powers do not match"),!1;if(!e.G1.eq(e.G1.g,a.singularPoints[0]))return I&&I.error("First element of tau*G1 section must be the generator"),!1;if(!e.G1.eq(o.tauG1,a.singularPoints[1]))return I&&I.error("Second element of tau*G1 section does not match the one in the contribution section"),!1;I&&I.debug("Verifying powers in tau*G2 section");const s=await u(3,"G2","tauG2",2**C,[0,1],I);if(t=await fg(e,e.G1.g,o.tauG1,s.R1,s.R2),!0!==t)return I&&I.error("tauG2 section. Powers do not match"),!1;if(!e.G2.eq(e.G2.g,s.singularPoints[0]))return I&&I.error("First element of tau*G2 section must be the generator"),!1;if(!e.G2.eq(o.tauG2,s.singularPoints[1]))return I&&I.error("Second element of tau*G2 section does not match the one in the contribution section"),!1;I&&I.debug("Verifying powers in alpha*tau*G1 section");const h=await u(4,"G1","alphatauG1",2**C,[0],I);if(t=await fg(e,h.R1,h.R2,e.G2.g,o.tauG2),!0!==t)return I&&I.error("alphaTauG1 section. Powers do not match"),!1;if(!e.G1.eq(o.alphaG1,h.singularPoints[0]))return I&&I.error("First element of alpha*tau*G1 section (alpha*G1) does not match the one in the contribution section"),!1;I&&I.debug("Verifying powers in beta*tau*G1 section");const f=await u(5,"G1","betatauG1",2**C,[0],I);if(t=await fg(e,f.R1,f.R2,e.G2.g,o.tauG2),!0!==t)return I&&I.error("betaTauG1 section. Powers do not match"),!1;if(!e.G1.eq(o.betaG1,f.singularPoints[0]))return I&&I.error("First element of beta*tau*G1 section (beta*G1) does not match the one in the contribution section"),!1;const w=await async function(A){const I=e.G2,t=2*I.F.n8,C=new Uint8Array(t);if(!g[6])throw A.error("File has no BetaG2 section"),new Error("File has no BetaG2 section");if(g[6].length>1)throw A.error("File has no BetaG2 section"),new Error("File has more than one GetaG2 section");i.pos=g[6][0].p;const n=await i.read(t),Q=I.fromRprLEM(n);return I.toRprUncompressed(C,0,Q),E.update(C),Q}(I);if(!e.G2.eq(o.betaG2,w))return I&&I.error("betaG2 element in betaG2 section does not match the one in the contribution section"),!1;const D=E.digest();if(C==n&&!tt(D,o.nextChallenge))return I&&I.error("Hash of the values does not match the next challenge of the last contributor in the contributions section"),!1;I&&I.info(It(D,"Next challenge hash: ")),c(o,r);for(let A=Q.length-2;A>=0;A--){const t=Q[A],i=A>0?Q[A-1]:B;if(!await wg(e,t,i,I))return!1;c(t,i)}if(I&&I.info("-----------------------------------------------------"),g[12]&&g[13]&&g[14]&&g[15]){let A;if(A=await l("G1",2,12,"tauG1",I),!A)return!1;if(A=await l("G2",3,13,"tauG2",I),!A)return!1;if(A=await l("G1",4,14,"alphaTauG1",I),!A)return!1;if(A=await l("G1",5,15,"betaTauG1",I),!A)return!1}else I&&I.warn('this file does not contain phase2 precalculated values. Please run: \n snarkjs "powersoftau preparephase2" to prepare this file to be used in the phase2 ceremony.');return await i.close(),I&&I.info("Powers of Tau Ok!"),!0;function c(A,t){if(!I)return;I.info("-----------------------------------------------------"),I.info(`Contribution #${A.id}: ${A.name||""}`),I.info(It(A.nextChallenge,"Next Challenge: "));const i=new Uint8Array(2*e.G1.F.n8*6+2*e.G2.F.n8*3);Bg(i,0,e,A.key,!1);const g=TI(64);g.setPartialHash(A.partialHash),g.update(i);const C=g.digest();I.info(It(C,"Response Hash:")),I.info(It(t.nextChallenge,"Response Hash:")),1==A.type&&(I.info(`Beacon generator: ${Qt(A.beaconHash)}`),I.info(`Beacon iterations Exp: ${A.numIterationsExp}`))}async function u(A,I,t,C,n,Q){const B=e[I],r=2*B.F.n8;await JI(i,g,A);const o=[];let a=B.zero,s=B.zero,h=B.zero;for(let A=0;A<C;A+=65536){Q&&Q.debug(`points relations: ${t}: ${A}/${C} `);const I=Math.min(C-A,65536),g=await i.read(I*r),e=await B.batchLEMtoU(g);E.update(e);const f=new Uint8Array(4*(I-1));if(cA.randomFillSync(f),A>0){const A=B.fromRprLEM(g,0),I=cA.randomBytes(4).readUInt32BE(0,!0);a=B.add(a,B.timesScalar(h,I)),s=B.add(s,B.timesScalar(A,I))}const w=await B.multiExpAffine(g.slice(0,(I-1)*r),f),D=await B.multiExpAffine(g.slice(r),f);a=B.add(a,w),s=B.add(s,D),h=B.fromRprLEM(g,(I-1)*r);for(let t=0;t<n.length;t++){const i=n[t];if(i>=A&&i<A+I){const I=B.fromRprLEM(g,(i-A)*r);o.push(I)}}}return await SI(i),{R1:a,R2:s,singularPoints:o}}async function l(A,I,t,n,Q){Q&&Q.debug(`Verifying phase2 calculated values ${n}...`);const B=e[A],r=2*B.F.n8,o=new Array(8);for(let A=0;A<8;A++)o[A]=cA.randomBytes(4).readUInt32BE(0,!0);for(let A=0;A<=C;A++){if(!await E(A))return!1}if(2==I){if(!await E(C+1))return!1}return!0;async function E(A){Q&&Q.debug(`Power ${A}...`);const E=e.Fr.n8,a=2**A;let s,h=new Uint32Array(a),f=new DA(o);Q&&Q.debug(`Creating random numbers Powers${A}...`);for(let I=0;I<a;I++)h[I]=A==C+1&&I==a-1?0:f.nextU32();h=new Uint8Array(h.buffer,h.byteOffset,h.byteLength),Q&&Q.debug(`reading points Powers${A}...`),await JI(i,g,I),s=new VA(a*r),A==C+1?(await i.readToBuffer(s,0,(a-1)*r),s.set(e.G1.zeroAffine,(a-1)*r)):await i.readToBuffer(s,0,a*r),await SI(i,!0);const w=await B.multiExpAffine(s,h,Q,n+"_"+A);h=new VA(a*E),f=new DA(o);const D=new Uint8Array(4),c=new DataView(D.buffer);Q&&Q.debug(`Creating random numbers Powers${A}...`);for(let I=0;I<a;I++)I==a-1&&A==C+1||(c.setUint32(0,f.nextU32(),!0),h.set(D,I*E));Q&&Q.debug(`batchToMontgomery ${A}...`),h=await e.Fr.batchToMontgomery(h),Q&&Q.debug(`fft ${A}...`),h=await e.Fr.fft(h),Q&&Q.debug(`batchFromMontgomery ${A}...`),h=await e.Fr.batchFromMontgomery(h),Q&&Q.debug(`reading points Lagrange${A}...`),await JI(i,g,t),i.pos+=r*(2**A-1),await i.readToBuffer(s,0,a*r),await SI(i,!0);const u=await B.multiExpAffine(s,h,Q,n+"_"+A+"_transformed");return!!B.eq(w,u)||(Q&&Q.error("Phase2 caclutation does not match with powers of tau"),!1)}}},challengeContribute:async function(A,I,t,i,g){await TI.ready();const e=await UI(I),C=8*A.F1.n64*2,n=8*A.F2.n64*2,Q=(e.totalSize+C-64-n)/(4*C+n);let B=Q,r=0;for(;B>1;)B/=2,r+=1;if(2**r!=Q)throw new Error("Invalid file size");g&&g.debug("Power to tau size: "+r);const o=await et(i),E=await HI(t),a=TI(64);for(let A=0;A<e.totalSize;A+=e.pageSize){g&&g.debug(`Hashing challenge ${A}/${e.totalSize}`);const I=Math.min(e.totalSize-A,e.pageSize),t=await e.read(I);a.update(t)}const s=await e.read(64,0);g&&g.info(It(s,"Claimed Previous Response Hash: "));const h=a.digest();g&&g.info(It(h,"Current Challenge Hash: "));const f=eg(A,h,o);g&&["tau","alpha","beta"].forEach((I=>{g.debug(I+".g1_s: "+A.G1.toString(f[I].g1_s,16)),g.debug(I+".g1_sx: "+A.G1.toString(f[I].g1_sx,16)),g.debug(I+".g2_sp: "+A.G2.toString(f[I].g2_sp,16)),g.debug(I+".g2_spx: "+A.G2.toString(f[I].g2_spx,16)),g.debug("")}));const w=TI(64);await E.write(h),w.update(h),await cg(e,E,w,A,"G1",2**r*2-1,A.Fr.one,f.tau.prvKey,"COMPRESSED","tauG1",g),await cg(e,E,w,A,"G2",2**r,A.Fr.one,f.tau.prvKey,"COMPRESSED","tauG2",g),await cg(e,E,w,A,"G1",2**r,f.alpha.prvKey,f.tau.prvKey,"COMPRESSED","alphaTauG1",g),await cg(e,E,w,A,"G1",2**r,f.beta.prvKey,f.tau.prvKey,"COMPRESSED","betaTauG1",g),await cg(e,E,w,A,"G2",1,f.beta.prvKey,f.tau.prvKey,"COMPRESSED","betaTauG2",g);const D=new Uint8Array(2*A.F1.n8*6+2*A.F2.n8*3);Bg(D,0,A,f,!1),await E.write(D),w.update(D);const c=w.digest();g&&g.info(It(c,"Contribution Response Hash: ")),await E.close(),await e.close()},beacon:async function(A,I,t,i,g,e){const C=nt(i);if(0==C.byteLength||2*C.byteLength!=i.length)return e&&e.error("Invalid Beacon Hash. (It must be a valid hexadecimal sequence)"),!1;if(C.length>=256)return e&&e.error("Maximum lenght of beacon hash is 255 bytes"),!1;if((g=parseInt(g))<10||g>63)return e&&e.error("Invalid numIterationsExp. (Must be between 10 and 63)"),!1;await TI.ready();const{fd:n,sections:Q}=await bI(A,"ptau",1),{curve:B,power:r,ceremonyPower:o}=await ng(n,Q);if(r!=o)return e&&e.error("This file has been reduced. You cannot contribute into a reduced file."),!1;Q[12]&&e&&e.warn("Contributing into a file that has phase2 calculated. You will have to prepare phase2 again.");const E=await og(n,B,Q),a={name:t,type:1,numIterationsExp:g,beaconHash:C};let s;s=E.length>0?E[E.length-1].nextChallenge:sg(B,r,e),a.key=hg(B,s,C,g);const h=new TI(64);h.update(s);const f=await LI(I,"ptau",1,7);await Cg(f,B,r);const w=[];let D;D=await y(2,"G1",2**r*2-1,B.Fr.e(1),a.key.tau.prvKey,"tauG1",e),a.tauG1=D[1],D=await y(3,"G2",2**r,B.Fr.e(1),a.key.tau.prvKey,"tauG2",e),a.tauG2=D[1],D=await y(4,"G1",2**r,a.key.alpha.prvKey,a.key.tau.prvKey,"alphaTauG1",e),a.alphaG1=D[0],D=await y(5,"G1",2**r,a.key.beta.prvKey,a.key.tau.prvKey,"betaTauG1",e),a.betaG1=D[0],D=await y(6,"G2",1,a.key.beta.prvKey,a.key.tau.prvKey,"betaTauG2",e),a.betaG2=D[0],a.partialHash=h.getPartialHash();const c=new Uint8Array(2*B.F1.n8*6+2*B.F2.n8*3);Bg(c,0,B,a.key,!1),h.update(new Uint8Array(c));const u=h.digest();e&&e.info(It(u,"Contribution Response Hash imported: "));const l=new TI(64);return l.update(u),await p(f,"G1",2,2**r*2-1,"tauG1",e),await p(f,"G2",3,2**r,"tauG2",e),await p(f,"G1",4,2**r,"alphaTauG1",e),await p(f,"G1",5,2**r,"betaTauG1",e),await p(f,"G2",6,1,"betaG2",e),a.nextChallenge=l.digest(),e&&e.info(It(a.nextChallenge,"Next Challenge Hash: ")),E.push(a),await ag(f,B,E),await n.close(),await f.close(),u;async function y(A,I,t,i,g,e,C){const r=[];n.pos=Q[A][0].p,await kI(f,A),w[A]=f.pos;const o=B[I],E=2*o.F.n8,a=Math.floor((1<<20)/E);let s=i;for(let A=0;A<t;A+=a){C&&C.debug(`applying key${e}: ${A}/${t}`);const I=Math.min(t-A,a),i=await n.read(I*E),Q=await o.batchApplyKey(i,s,g),w=f.write(Q),D=await o.batchLEMtoC(Q);if(h.update(D),await w,0==A)for(let A=0;A<Math.min(2,t);A++)r.push(o.fromRprLEM(Q,A*E));s=B.Fr.mul(s,B.Fr.exp(g,I))}return await NI(f),r}async function p(A,I,t,i,g,e){const C=B[I],n=2*C.F.n8,Q=Math.floor((1<<24)/n),r=A.pos;A.pos=w[t];for(let I=0;I<i;I+=Q){e&&e.debug(`Hashing ${g}: ${I}/${i}`);const t=Math.min(i-I,Q),B=await A.read(t*n),r=await C.batchLEMtoU(B);l.update(r)}A.pos=r}},contribute:async function(A,I,t,i,g){await TI.ready();const{fd:e,sections:C}=await bI(A,"ptau",1),{curve:n,power:Q,ceremonyPower:B}=await ng(e,C);if(Q!=B)throw g&&g.error("This file has been reduced. You cannot contribute into a reduced file."),new Error("This file has been reduced. You cannot contribute into a reduced file.");C[12]&&g&&g.warn("WARNING: Contributing into a file that has phase2 calculated. You will have to prepare phase2 again.");const r=await og(e,n,C),o={name:t,type:0};let E;const a=await et(i);E=r.length>0?r[r.length-1].nextChallenge:sg(n,Q,g),o.key=eg(n,E,a);const s=new TI(64);s.update(E);const h=await LI(I,"ptau",1,7);await Cg(h,n,Q);const f=[];let w;w=await l(2,"G1",2**Q*2-1,n.Fr.e(1),o.key.tau.prvKey,"tauG1"),o.tauG1=w[1],w=await l(3,"G2",2**Q,n.Fr.e(1),o.key.tau.prvKey,"tauG2"),o.tauG2=w[1],w=await l(4,"G1",2**Q,o.key.alpha.prvKey,o.key.tau.prvKey,"alphaTauG1"),o.alphaG1=w[0],w=await l(5,"G1",2**Q,o.key.beta.prvKey,o.key.tau.prvKey,"betaTauG1"),o.betaG1=w[0],w=await l(6,"G2",1,o.key.beta.prvKey,o.key.tau.prvKey,"betaTauG2"),o.betaG2=w[0],o.partialHash=s.getPartialHash();const D=new Uint8Array(2*n.F1.n8*6+2*n.F2.n8*3);Bg(D,0,n,o.key,!1),s.update(new Uint8Array(D));const c=s.digest();g&&g.info(It(c,"Contribution Response Hash imported: "));const u=new TI(64);return u.update(c),await y(h,"G1",2,2**Q*2-1,"tauG1"),await y(h,"G2",3,2**Q,"tauG2"),await y(h,"G1",4,2**Q,"alphaTauG1"),await y(h,"G1",5,2**Q,"betaTauG1"),await y(h,"G2",6,1,"betaG2"),o.nextChallenge=u.digest(),g&&g.info(It(o.nextChallenge,"Next Challenge Hash: ")),r.push(o),await ag(h,n,r),await e.close(),await h.close(),c;async function l(A,I,t,i,Q,B){const r=[];e.pos=C[A][0].p,await kI(h,A),f[A]=h.pos;const o=n[I],E=2*o.F.n8,a=Math.floor((1<<20)/E);let w=i;for(let A=0;A<t;A+=a){g&&g.debug(`processing: ${B}: ${A}/${t}`);const I=Math.min(t-A,a),i=await e.read(I*E),C=await o.batchApplyKey(i,w,Q),f=h.write(C),D=await o.batchLEMtoC(C);if(s.update(D),await f,0==A)for(let A=0;A<Math.min(2,t);A++)r.push(o.fromRprLEM(C,A*E));w=n.Fr.mul(w,n.Fr.exp(Q,I))}return await NI(h),r}async function y(A,I,t,i,e){const C=n[I],Q=2*C.F.n8,B=Math.floor((1<<24)/Q),r=A.pos;A.pos=f[t];for(let I=0;I<i;I+=B){g&&I&&g.debug(`Hashing ${e}: `+I);const t=Math.min(i-I,B),n=await A.read(t*Q),r=await C.batchLEMtoU(n);u.update(r)}A.pos=r}},preparePhase2:async function(A,I,t){const{fd:i,sections:g}=await bI(A,"ptau",1),{curve:e,power:C}=await ng(i,g),n=await LI(I,"ptau",1,11);return await Cg(n,e,C),await YI(i,g,n,2),await YI(i,g,n,3),await YI(i,g,n,4),await YI(i,g,n,5),await YI(i,g,n,6),await YI(i,g,n,7),await Q(2,12,"G1","tauG1"),await Q(3,13,"G2","tauG2"),await Q(4,14,"G1","alphaTauG1"),await Q(5,15,"G1","betaTauG1"),await i.close(),void await n.close();async function Q(A,I,Q,B){t&&t.debug("Starting section: "+B),await kI(n,I);for(let A=0;A<=C;A++)await r(A);async function r(I){const r=2**I,o=e[Q],E=(e.Fr,2*o.F.n8);o.F.n8;let a;a=new VA(r*E),await JI(i,g,A),2==A&&I==C+1?(await i.readToBuffer(a,0,(r-1)*E),a.set(e.G1.zeroAffine,(r-1)*E)):await i.readToBuffer(a,0,r*E),await SI(i,!0),a=await o.lagrangeEvaluations(a,"affine","affine",t,B),await n.write(a)}2==A&&await r(C+1),await NI(n)}},truncate:async function(A,I,t){const{fd:i,sections:g}=await bI(A,"ptau",1),{curve:e,power:C,ceremonyPower:n}=await ng(i,g),Q=2*e.G1.F.n8,B=2*e.G2.F.n8;for(let A=1;A<C;A++)await r(A);return await i.close(),!0;async function r(A){let C=A.toString();for(;C.length<2;)C="0"+C;t&&t.debug("Writing Power: "+C);const r=await LI(I+C+".ptau","ptau",1,11);await Cg(r,e,A,n),await YI(i,g,r,2,(2**A*2-1)*Q),await YI(i,g,r,3,2**A*B),await YI(i,g,r,4,2**A*Q),await YI(i,g,r,5,2**A*Q),await YI(i,g,r,6,B),await YI(i,g,r,7),await YI(i,g,r,12,(2**(A+1)*2-1)*Q),await YI(i,g,r,13,(2**A*2-1)*B),await YI(i,g,r,14,(2**A*2-1)*Q),await YI(i,g,r,15,(2**A*2-1)*Q),await r.close()}},convert:async function(A,I,t){const{fd:i,sections:g}=await bI(A,"ptau",1),{curve:e,power:C}=await ng(i,g),n=await LI(I,"ptau",1,11);return await Cg(n,e,C),await YI(i,g,n,2),await YI(i,g,n,3),await YI(i,g,n,4),await YI(i,g,n,5),await YI(i,g,n,6),await YI(i,g,n,7),await async function(A,I,Q,B){t&&t.debug("Starting section: "+B);await kI(n,I);const r=g[I][0].size,o=i.pageSize;await JI(i,g,I);for(let A=0;A<r;A+=o){const I=Math.min(r-A,o),t=await i.read(I);await n.write(t)}await SI(i),2==A&&await async function(I){const r=2**I,o=e[Q],E=2*o.F.n8;let a;a=new VA(r*E),await JI(i,g,A),2==A&&I==C+1?(await i.readToBuffer(a,0,(r-1)*E),a.set(e.G1.zeroAffine,(r-1)*E)):await i.readToBuffer(a,0,r*E);await SI(i,!0),a=await o.lagrangeEvaluations(a,"affine","affine",t,B),await n.write(a)}(C+1);await NI(n)}(2,12,"G1","tauG1"),await YI(i,g,n,13),await YI(i,g,n,14),await YI(i,g,n,15),await i.close(),void await n.close()},exportJson:async function(A,I){const{fd:t,sections:i}=await bI(A,"ptau",1),{curve:g,power:e}=await ng(t,i),C={};return C.q=g.q,C.power=e,C.contributions=await og(t,g,i),C.tauG1=await n(2,"G1",2**e*2-1,"tauG1"),C.tauG2=await n(3,"G2",2**e,"tauG2"),C.alphaTauG1=await n(4,"G1",2**e,"alphaTauG1"),C.betaTauG1=await n(5,"G1",2**e,"betaTauG1"),C.betaG2=await n(6,"G2",1,"betaG2"),C.lTauG1=await Q(12,"G1","lTauG1"),C.lTauG2=await Q(13,"G2","lTauG2"),C.lAlphaTauG1=await Q(14,"G1","lAlphaTauG2"),C.lBetaTauG1=await Q(15,"G1","lBetaTauG2"),await t.close(),C;async function n(A,e,C,n){const Q=g[e],B=2*Q.F.n8,r=[];await JI(t,i,A);for(let A=0;A<C;A++){I&&A&&A%1e4==0&&console.log(`${n}: `+A);const i=await t.read(B);r.push(Q.fromRprLEM(i,0))}return await SI(t),r}async function Q(A,C,n){const Q=g[C],B=2*Q.F.n8,r=[];await JI(t,i,A);for(let A=0;A<=e;A++){I&&console.log(`${n}: Power: ${A}`),r[A]=[];const i=2**A;for(let g=0;g<i;g++){I&&g&&g%1e4==0&&console.log(`${n}: ${g}/${i}`);const e=await t.read(B);r[A].push(Q.fromRprLEM(e,0))}}return await SI(t),r}}});const lg=[0,1,2,2,3,3,3,3,4,4,4,4,4,4,4,4];function yg(A,I){return I&&10!=I?16==I?"0x"==A.slice(0,2)?BigInt(A):BigInt("0x"+A):void 0:BigInt(A)}const pg=yg;function Fg(A,I){return BigInt(A)<<BigInt(I)}function Mg(A,I){return BigInt(A)>>BigInt(I)}const mg=Fg,dg=Mg;var Gg=Object.freeze({__proto__:null,fromString:yg,e:pg,fromArray:function(A,I){let t=0n;I=BigInt(I);for(let i=0;i<A.length;i++)t=t*I+BigInt(A[i]);return t},bitLength:function(A){const I=A.toString(16);return 4*(I.length-1)+lg[parseInt(I[0],16)]},isNegative:function(A){return BigInt(A)<0n},isZero:function(A){return!A},shiftLeft:Fg,shiftRight:Mg,shl:mg,shr:dg,isOdd:function(A){return 1n==(1n&BigInt(A))},naf:function(A){let I=BigInt(A);const t=[];for(;I;){if(1n&I){const A=2-Number(I%4n);t.push(A),I-=BigInt(A)}else t.push(0);I>>=1n}return t},bits:function(A){let I=BigInt(A);const t=[];for(;I;)1n&I?t.push(1):t.push(0),I>>=1n;return t},toNumber:function(A){if(A>BigInt(Number.MAX_SAFE_INTEGER))throw new Error("Number too big");return Number(A)},toArray:function(A,I){const t=[];let i=BigInt(A);for(I=BigInt(I);i;)t.unshift(Number(i%I)),i/=I;return t},add:function(A,I){return BigInt(A)+BigInt(I)},sub:function(A,I){return BigInt(A)-BigInt(I)},neg:function(A){return-BigInt(A)},mul:function(A,I){return BigInt(A)*BigInt(I)},square:function(A){return BigInt(A)*BigInt(A)},pow:function(A,I){return BigInt(A)**BigInt(I)},exp:function(A,I){return BigInt(A)**BigInt(I)},abs:function(A){return BigInt(A)>=0?BigInt(A):-BigInt(A)},div:function(A,I){return BigInt(A)/BigInt(I)},mod:function(A,I){return BigInt(A)%BigInt(I)},eq:function(A,I){return BigInt(A)==BigInt(I)},neq:function(A,I){return BigInt(A)!=BigInt(I)},lt:function(A,I){return BigInt(A)<BigInt(I)},gt:function(A,I){return BigInt(A)>BigInt(I)},leq:function(A,I){return BigInt(A)<=BigInt(I)},geq:function(A,I){return BigInt(A)>=BigInt(I)},band:function(A,I){return BigInt(A)&BigInt(I)},bor:function(A,I){return BigInt(A)|BigInt(I)},bxor:function(A,I){return BigInt(A)^BigInt(I)},land:function(A,I){return BigInt(A)&&BigInt(I)},lor:function(A,I){return BigInt(A)||BigInt(I)},lnot:function(A){return!BigInt(A)}});function Hg(A,I){return"string"==typeof A&&"0x"==A.slice(0,2)?o(A.slice(2),16):o(A,I)}const Ug=Hg;function bg(A,I){return o(A).shiftLeft(I)}function Lg(A,I){return o(A).shiftRight(I)}const kg=bg,Ng=Lg;var Jg=Object.freeze({__proto__:null,fromString:Hg,e:Ug,fromArray:function(A,I){return o.fromArray(A,I)},bitLength:function(A){return o(A).bitLength()},isNegative:function(A){return o(A).isNegative()},isZero:function(A){return o(A).isZero()},shiftLeft:bg,shiftRight:Lg,shl:kg,shr:Ng,isOdd:function(A){return o(A).isOdd()},naf:function(A){let I=o(A);const t=[];for(;I.gt(o.zero);){if(I.isOdd()){const A=2-I.mod(4).toJSNumber();t.push(A),I=I.minus(A)}else t.push(0);I=I.shiftRight(1)}return t},bits:function(A){let I=o(A);const t=[];for(;I.gt(o.zero);)I.isOdd()?t.push(1):t.push(0),I=I.shiftRight(1);return t},toNumber:function(A){if(!A.lt(o("9007199254740992",10)))throw new Error("Number too big");return A.toJSNumber()},toArray:function(A,I){return o(A).toArray(I)},add:function(A,I){return o(A).add(o(I))},sub:function(A,I){return o(A).minus(o(I))},neg:function(A){return o.zero.minus(o(A))},mul:function(A,I){return o(A).times(o(I))},square:function(A){return o(A).square()},pow:function(A,I){return o(A).pow(o(I))},exp:function(A,I){return o(A).pow(o(I))},abs:function(A){return o(A).abs()},div:function(A,I){return o(A).divide(o(I))},mod:function(A,I){return o(A).mod(o(I))},eq:function(A,I){return o(A).eq(o(I))},neq:function(A,I){return o(A).neq(o(I))},lt:function(A,I){return o(A).lt(o(I))},gt:function(A,I){return o(A).gt(o(I))},leq:function(A,I){return o(A).leq(o(I))},geq:function(A,I){return o(A).geq(o(I))},band:function(A,I){return o(A).and(o(I))},bor:function(A,I){return o(A).or(o(I))},bxor:function(A,I){return o(A).xor(o(I))},land:function(A,I){return!o(A).isZero()&&!o(I).isZero()},lor:function(A,I){return!o(A).isZero()||!o(I).isZero()},lnot:function(A){return o(A).isZero()}});const Sg="function"==typeof BigInt;let vg={};Sg?Object.assign(vg,Gg):Object.assign(vg,Jg),vg.toRprLE=function(A,I,t,i){const g="0000000"+t.toString(16),e=new Uint32Array(A.buffer,I,i/4),C=1+(4*(g.length-7)-1>>5);for(let A=0;A<C;A++)e[A]=parseInt(g.substring(g.length-8*A-8,g.length-8*A),16);for(let A=C;A<e.length;A++)e[A]=0;for(let I=4*e.length;I<i;I++)A[I]=vg.toNumber(vg.band(vg.shiftRight(t,8*I),255))},vg.toRprBE=function(A,I,t,i){const g="0000000"+t.toString(16),e=new DataView(A.buffer,A.byteOffset+I,i),C=1+(4*(g.length-7)-1>>5);for(let A=0;A<C;A++)e.setUint32(i-4*A-4,parseInt(g.substring(g.length-8*A-8,g.length-8*A),16),!1);for(let A=0;A<i/4-C;A++)e[A]=0},vg.fromRprLE=function(A,I,t){t=t||A.byteLength;const i=new Uint32Array(A.buffer,I,t/4),g=new Array(t/4);return i.forEach(((A,I)=>g[g.length-I-1]=A.toString(16).padStart(8,"0"))),vg.fromString(g.join(""),16)},vg.fromRprBE=function(A,I,t){t=t||A.byteLength;const i=new DataView(A.buffer,A.byteOffset+I,t),g=new Array(t/4);for(let A=0;A<t/4;A++)g[A]=i.getUint32(4*A,!1).toString(16).padStart(8,"0");return vg.fromString(g.join(""),16)},vg.toString=function(A,I){return A.toString(I)},vg.toLEBuff=function(A){const I=new Uint8Array(Math.floor((vg.bitLength(A)-1)/8)+1);return vg.toRprLE(I,0,A,I.byteLength),I},vg.zero=vg.e(0),vg.one=vg.e(1);let{toRprLE:Rg,toRprBE:Yg,fromRprLE:qg,fromRprBE:xg,toString:Pg,toLEBuff:Xg,zero:Og,one:Zg,fromString:Vg,e:Kg,fromArray:jg,bitLength:zg,isNegative:Wg,isZero:Tg,shiftLeft:_g,shiftRight:$g,shl:Ae,shr:Ie,isOdd:te,naf:ie,bits:ge,toNumber:ee,toArray:Ce,add:ne,sub:Qe,neg:Be,mul:re,square:oe,pow:Ee,exp:ae,abs:se,div:he,mod:fe,eq:we,neq:De,lt:ce,gt:ue,leq:le,geq:ye,band:pe,bor:Fe,bxor:Me,land:me,lor:de,lnot:Ge}=vg;const He=[];for(let A=0;A<256;A++)He[A]=Ue(A,8);function Ue(A,I){let t=0,i=A;for(let A=0;A<I;A++)t<<=1,t|=1&i,i>>=1;return t}function be(A,I,t,i,g){A[I]=A[I]+A[t]>>>0,A[g]=(A[g]^A[I])>>>0,A[g]=(A[g]<<16|A[g]>>>16&65535)>>>0,A[i]=A[i]+A[g]>>>0,A[t]=(A[t]^A[i])>>>0,A[t]=(A[t]<<12|A[t]>>>20&4095)>>>0,A[I]=A[I]+A[t]>>>0,A[g]=(A[g]^A[I])>>>0,A[g]=(A[g]<<8|A[g]>>>24&255)>>>0,A[i]=A[i]+A[g]>>>0,A[t]=(A[t]^A[i])>>>0,A[t]=(A[t]<<7|A[t]>>>25&127)>>>0}class Le{constructor(A){A=A||[0,0,0,0,0,0,0,0],this.state=[1634760805,857760878,2036477234,1797285236,A[0],A[1],A[2],A[3],A[4],A[5],A[6],A[7],0,0,0,0],this.idx=16,this.buff=new Array(16)}nextU32(){return 16==this.idx&&this.update(),this.buff[this.idx++]}nextU64(){return ne(re(this.nextU32(),4294967296),this.nextU32())}nextBool(){return 1==(1&this.nextU32())}update(){for(let A=0;A<16;A++)this.buff[A]=this.state[A];for(let I=0;I<10;I++)be(A=this.buff,0,4,8,12),be(A,1,5,9,13),be(A,2,6,10,14),be(A,3,7,11,15),be(A,0,5,10,15),be(A,1,6,11,12),be(A,2,7,8,13),be(A,3,4,9,14);var A;for(let A=0;A<16;A++)this.buff[A]=this.buff[A]+this.state[A]>>>0;this.idx=0,this.state[12]=this.state[12]+1>>>0,0==this.state[12]&&(this.state[13]=this.state[13]+1>>>0,0==this.state[13]&&(this.state[14]=this.state[14]+1>>>0,0==this.state[14]&&(this.state[15]=this.state[15]+1>>>0)))}}function ke(){const A=function(A){let I=new Uint8Array(A);if("undefined"!=typeof window)if(void 0!==window.crypto)window.crypto.getRandomValues(I);else for(let t=0;t<A;t++)I[t]=4294967296*Math.random()>>>0;else cA.randomFillSync(I);return I}(32),I=new Uint32Array(A.buffer),t=[];for(let A=0;A<8;A++)t.push(I[A]);return t}let Ne=null;function Je(){return Ne||(Ne=new Le(ke()),Ne)}var Se=Object.freeze({__proto__:null,stringifyBigInts:function A(I){if("bigint"==typeof I||void 0!==I.eq)return I.toString(10);if(I instanceof Uint8Array)return qg(I,0);if(Array.isArray(I))return I.map(A);if("object"==typeof I){const t={};return Object.keys(I).forEach((i=>{t[i]=A(I[i])})),t}return I},unstringifyBigInts:function A(I){if("string"==typeof I&&/^[0-9]+$/.test(I))return BigInt(I);if(Array.isArray(I))return I.map(A);if("object"==typeof I){if(null===I)return null;const t={};return Object.keys(I).forEach((i=>{t[i]=A(I[i])})),t}return I},beBuff2int:function(A){let I=0n,t=A.length,i=0;const g=new DataView(A.buffer,A.byteOffset,A.byteLength);for(;t>0;)t>=4?(t-=4,I+=BigInt(g.getUint32(t))<<BigInt(8*i),i+=4):t>=2?(t-=2,I+=BigInt(g.getUint16(t))<<BigInt(8*i),i+=2):(t-=1,I+=BigInt(g.getUint8(t))<<BigInt(8*i),i+=1);return I},beInt2Buff:function(A,I){let t=A;const i=new Uint8Array(I),g=new DataView(i.buffer);let e=I;for(;e>0;)e-4>=0?(e-=4,g.setUint32(e,Number(0xFFFFFFFFn&t)),t>>=32n):e-2>=0?(e-=2,g.setUint16(e,Number(0xFFFFn&t)),t>>=16n):(e-=1,g.setUint8(e,Number(0xFFn&t)),t>>=8n);if(t)throw new Error("Number does not fit in this length");return i},leBuff2int:function(A){let I=0n,t=0;const i=new DataView(A.buffer,A.byteOffset,A.byteLength);for(;t<A.length;)t+4<=A.length?(I+=BigInt(i.getUint32(t,!0))<<BigInt(8*t),t+=4):t+4<=A.length?(I+=BigInt(i.getUint16(t,!0))<<BigInt(8*t),t+=2):(I+=BigInt(i.getUint8(t,!0))<<BigInt(8*t),t+=1);return I},leInt2Buff:function(A,I){let t=A;void 0===I&&0==(I=Math.floor((zg(A)-1)/8)+1)&&(I=1);const i=new Uint8Array(I),g=new DataView(i.buffer);let e=0;for(;e<I;)e+4<=I?(g.setUint32(e,Number(0xFFFFFFFFn&t),!0),e+=4,t>>=32n):e+2<=I?(g.setUint16(Number(e,0xFFFFn&t),!0),e+=2,t>>=16n):(g.setUint8(Number(e,0xFFn&t),!0),e+=1,t>>=8n);if(t)throw new Error("Number does not fit in this length");return i}});var ve=Object.freeze({__proto__:null,stringifyBigInts:function A(I){if("bigint"==typeof I||void 0!==I.eq)return I.toString(10);if(Array.isArray(I))return I.map(A);if("object"==typeof I){const t={};return Object.keys(I).forEach((i=>{t[i]=A(I[i])})),t}return I},unstringifyBigInts:function A(I){if("string"==typeof I&&/^[0-9]+$/.test(I))return o(I);if(Array.isArray(I))return I.map(A);if("object"==typeof I){const t={};return Object.keys(I).forEach((i=>{t[i]=A(I[i])})),t}return I},beBuff2int:function(A){let I=o.zero;for(let t=0;t<A.length;t++){const i=o(A[A.length-t-1]);I=I.add(i.shiftLeft(8*t))}return I},beInt2Buff:function(A,I){let t=A,i=I-1;const g=new Uint8Array(I);for(;t.gt(o.zero)&&i>=0;){let A=Number(t.and(o("255")));g[i]=A,i--,t=t.shiftRight(8)}if(!t.eq(o.zero))throw new Error("Number does not fit in this length");return g},leBuff2int:function(A){let I=o.zero;for(let t=0;t<A.length;t++){const i=o(A[t]);I=I.add(i.shiftLeft(8*t))}return I},leInt2Buff:function(A,I){let t=A,i=0;const g=new Uint8Array(I);for(;t.gt(o.zero)&&i<g.length;){let A=Number(t.and(o(255)));g[i]=A,i++,t=t.shiftRight(8)}if(!t.eq(o.zero))throw new Error("Number does not fit in this length");return g}});let Re={};"function"==typeof BigInt?Object.assign(Re,Se):Object.assign(Re,ve);const Ye=[];for(let A=0;A<256;A++)Ye[A]=qe(A,8);function qe(A,I){let t=0,i=A;for(let A=0;A<I;A++)t<<=1,t|=1&i,i>>=1;return t}Re.bitReverse=function(A,I){return(Ye[A>>>24]|Ye[A>>>16&255]<<8|Ye[A>>>8&255]<<16|Ye[255&A]<<24)>>>32-I},Re.log2=function(A){return(0!=(4294901760&A)?(A&=4294901760,16):0)|(0!=(4278255360&A)?(A&=4278255360,8):0)|(0!=(4042322160&A)?(A&=4042322160,4):0)|(0!=(3435973836&A)?(A&=3435973836,2):0)|0!=(2863311530&A)},Re.buffReverseBits=function(A,I){const t=A.byteLength/I,i=Re.log2(t);if(t!=1<<i)throw new Error("Invalid number of pointers");for(let g=0;g<t;g++){const t=Re.bitReverse(g,i);if(g>t){const i=A.slice(g*I,(g+1)*I);A.set(A.slice(t*I,(t+1)*I),g*I),A.set(i,t*I)}}};let{bitReverse:xe,log2:Pe,buffReverseBits:Xe,stringifyBigInts:Oe,unstringifyBigInts:Ze,beBuff2int:Ve,beInt2Buff:Ke,leBuff2int:je,leInt2Buff:ze}=Re;const We=1<<30;class Te{constructor(A){this.buffers=[],this.byteLength=A;for(let I=0;I<A;I+=We){const t=Math.min(A-I,We);this.buffers.push(new Uint8Array(t))}}slice(A,I){void 0===I&&(I=this.byteLength),void 0===A&&(A=0);const t=I-A,i=Math.floor(A/We);if(i==Math.floor((A+t-1)/We)||0==t)return this.buffers[i].slice(A%We,A%We+t);let g,e=i,C=A%We,n=t;for(;n>0;){const A=C+n>We?We-C:n,I=new Uint8Array(this.buffers[e].buffer,this.buffers[e].byteOffset+C,A);if(A==t)return I.slice();g||(g=t<=We?new Uint8Array(t):new Te(t)),g.set(I,t-n),n-=A,e++,C=0}return g}set(A,I){void 0===I&&(I=0);const t=A.byteLength;if(0==t)return;const i=Math.floor(I/We);if(i==Math.floor((I+t-1)/We))return this.buffers[i].set(A,I%We);let g=i,e=I%We,C=t;for(;C>0;){const I=e+C>We?We-e:C,i=A.slice(t-C,t-C+I);new Uint8Array(this.buffers[g].buffer,this.buffers[g].byteOffset+e,I).set(i),C-=I,g++,e=0}}}function _e(A,I,t,i){return async function(g){const e=Math.floor(g.byteLength/t);if(e*t!==g.byteLength)throw new Error("Invalid buffer size");const C=Math.floor(e/A.concurrency),n=[];for(let Q=0;Q<A.concurrency;Q++){let B;if(B=Q<A.concurrency-1?C:e-Q*C,0==B)continue;const r=[{cmd:"ALLOCSET",var:0,buff:g.slice(Q*C*t,Q*C*t+B*t)},{cmd:"ALLOC",var:1,len:i*B},{cmd:"CALL",fnName:I,params:[{var:0},{val:B},{var:1}]},{cmd:"GET",out:0,var:1,len:i*B}];n.push(A.queueAction(r))}const Q=await Promise.all(n);let B;B=g instanceof Te?new Te(e*i):new Uint8Array(e*i);let r=0;for(let A=0;A<Q.length;A++)B.set(Q[A][0],r),r+=Q[A][0].byteLength;return B}}class $e{constructor(A,I,t,i){if(this.tm=A,this.prefix=I,this.p=i,this.n8=t,this.type="F1",this.m=1,this.half=$g(i,Zg),this.bitLength=zg(i),this.mask=Qe(_g(Zg,this.bitLength),Zg),this.pOp1=A.alloc(t),this.pOp2=A.alloc(t),this.pOp3=A.alloc(t),this.tm.instance.exports[I+"_zero"](this.pOp1),this.zero=this.tm.getBuff(this.pOp1,this.n8),this.tm.instance.exports[I+"_one"](this.pOp1),this.one=this.tm.getBuff(this.pOp1,this.n8),this.negone=this.neg(this.one),this.two=this.add(this.one,this.one),this.n64=Math.floor(t/8),this.n32=Math.floor(t/4),8*this.n64!=this.n8)throw new Error("n8 must be a multiple of 8");this.half=$g(this.p,Zg),this.nqr=this.two;let g=this.exp(this.nqr,this.half);for(;!this.eq(g,this.negone);)this.nqr=this.add(this.nqr,this.one),g=this.exp(this.nqr,this.half);this.shift=this.mul(this.nqr,this.nqr),this.shiftInv=this.inv(this.shift),this.s=0;let e=Qe(this.p,Zg);for(;!te(e);)this.s=this.s+1,e=$g(e,Zg);this.w=[],this.w[this.s]=this.exp(this.nqr,e);for(let A=this.s-1;A>=0;A--)this.w[A]=this.square(this.w[A+1]);if(!this.eq(this.w[0],this.one))throw new Error("Error calculating roots of unity");this.batchToMontgomery=_e(A,I+"_batchToMontgomery",this.n8,this.n8),this.batchFromMontgomery=_e(A,I+"_batchFromMontgomery",this.n8,this.n8)}op2(A,I,t){return this.tm.setBuff(this.pOp1,I),this.tm.setBuff(this.pOp2,t),this.tm.instance.exports[this.prefix+A](this.pOp1,this.pOp2,this.pOp3),this.tm.getBuff(this.pOp3,this.n8)}op2Bool(A,I,t){return this.tm.setBuff(this.pOp1,I),this.tm.setBuff(this.pOp2,t),!!this.tm.instance.exports[this.prefix+A](this.pOp1,this.pOp2)}op1(A,I){return this.tm.setBuff(this.pOp1,I),this.tm.instance.exports[this.prefix+A](this.pOp1,this.pOp3),this.tm.getBuff(this.pOp3,this.n8)}op1Bool(A,I){return this.tm.setBuff(this.pOp1,I),!!this.tm.instance.exports[this.prefix+A](this.pOp1,this.pOp3)}add(A,I){return this.op2("_add",A,I)}eq(A,I){return this.op2Bool("_eq",A,I)}isZero(A){return this.op1Bool("_isZero",A)}sub(A,I){return this.op2("_sub",A,I)}neg(A){return this.op1("_neg",A)}inv(A){return this.op1("_inverse",A)}toMontgomery(A){return this.op1("_toMontgomery",A)}fromMontgomery(A){return this.op1("_fromMontgomery",A)}mul(A,I){return this.op2("_mul",A,I)}div(A,I){return this.tm.setBuff(this.pOp1,A),this.tm.setBuff(this.pOp2,I),this.tm.instance.exports[this.prefix+"_inverse"](this.pOp2,this.pOp2),this.tm.instance.exports[this.prefix+"_mul"](this.pOp1,this.pOp2,this.pOp3),this.tm.getBuff(this.pOp3,this.n8)}square(A){return this.op1("_square",A)}isSquare(A){return this.op1Bool("_isSquare",A)}sqrt(A){return this.op1("_sqrt",A)}exp(A,I){return I instanceof Uint8Array||(I=Xg(Kg(I))),this.tm.setBuff(this.pOp1,A),this.tm.setBuff(this.pOp2,I),this.tm.instance.exports[this.prefix+"_exp"](this.pOp1,this.pOp2,I.byteLength,this.pOp3),this.tm.getBuff(this.pOp3,this.n8)}isNegative(A){return this.op1Bool("_isNegative",A)}e(A,I){if(A instanceof Uint8Array)return A;let t=Kg(A,I);Wg(t)?(t=Be(t),ue(t,this.p)&&(t=fe(t,this.p)),t=Qe(this.p,t)):ue(t,this.p)&&(t=fe(t,this.p));const i=ze(t,this.n8);return this.toMontgomery(i)}toString(A,I){const t=this.fromMontgomery(A),i=qg(t,0);return Pg(i,I)}fromRng(A){let I;const t=new Uint8Array(this.n8);do{I=Og;for(let t=0;t<this.n64;t++)I=ne(I,_g(A.nextU64(),64*t));I=pe(I,this.mask)}while(ye(I,this.p));return Rg(t,0,I,this.n8),t}random(){return this.fromRng(Je())}toObject(A){const I=this.fromMontgomery(A);return qg(I,0)}fromObject(A){const I=new Uint8Array(this.n8);return Rg(I,0,A,this.n8),this.toMontgomery(I)}toRprLE(A,I,t){A.set(this.fromMontgomery(t),I)}fromRprLE(A,I){I=I||0;const t=A.slice(I,I+this.n8);return this.toMontgomery(t)}}class AC{constructor(A,I,t){this.tm=A,this.prefix=I,this.F=t,this.type="F2",this.m=2*t.m,this.n8=2*this.F.n8,this.n32=2*this.F.n32,this.n64=2*this.F.n64,this.pOp1=A.alloc(2*t.n8),this.pOp2=A.alloc(2*t.n8),this.pOp3=A.alloc(2*t.n8),this.tm.instance.exports[I+"_zero"](this.pOp1),this.zero=A.getBuff(this.pOp1,this.n8),this.tm.instance.exports[I+"_one"](this.pOp1),this.one=A.getBuff(this.pOp1,this.n8),this.negone=this.neg(this.one),this.two=this.add(this.one,this.one)}op2(A,I,t){return this.tm.setBuff(this.pOp1,I),this.tm.setBuff(this.pOp2,t),this.tm.instance.exports[this.prefix+A](this.pOp1,this.pOp2,this.pOp3),this.tm.getBuff(this.pOp3,this.n8)}op2Bool(A,I,t){return this.tm.setBuff(this.pOp1,I),this.tm.setBuff(this.pOp2,t),!!this.tm.instance.exports[this.prefix+A](this.pOp1,this.pOp2)}op1(A,I){return this.tm.setBuff(this.pOp1,I),this.tm.instance.exports[this.prefix+A](this.pOp1,this.pOp3),this.tm.getBuff(this.pOp3,this.n8)}op1Bool(A,I){return this.tm.setBuff(this.pOp1,I),!!this.tm.instance.exports[this.prefix+A](this.pOp1,this.pOp3)}add(A,I){return this.op2("_add",A,I)}eq(A,I){return this.op2Bool("_eq",A,I)}isZero(A){return this.op1Bool("_isZero",A)}sub(A,I){return this.op2("_sub",A,I)}neg(A){return this.op1("_neg",A)}inv(A){return this.op1("_inverse",A)}isNegative(A){return this.op1Bool("_isNegative",A)}toMontgomery(A){return this.op1("_toMontgomery",A)}fromMontgomery(A){return this.op1("_fromMontgomery",A)}mul(A,I){return this.op2("_mul",A,I)}mul1(A,I){return this.op2("_mul1",A,I)}div(A,I){return this.tm.setBuff(this.pOp1,A),this.tm.setBuff(this.pOp2,I),this.tm.instance.exports[this.prefix+"_inverse"](this.pOp2,this.pOp2),this.tm.instance.exports[this.prefix+"_mul"](this.pOp1,this.pOp2,this.pOp3),this.tm.getBuff(this.pOp3,this.n8)}square(A){return this.op1("_square",A)}isSquare(A){return this.op1Bool("_isSquare",A)}sqrt(A){return this.op1("_sqrt",A)}exp(A,I){return I instanceof Uint8Array||(I=Xg(Kg(I))),this.tm.setBuff(this.pOp1,A),this.tm.setBuff(this.pOp2,I),this.tm.instance.exports[this.prefix+"_exp"](this.pOp1,this.pOp2,I.byteLength,this.pOp3),this.tm.getBuff(this.pOp3,this.n8)}e(A,I){if(A instanceof Uint8Array)return A;if(Array.isArray(A)&&2==A.length){const t=this.F.e(A[0],I),i=this.F.e(A[1],I),g=new Uint8Array(2*this.F.n8);return g.set(t),g.set(i,2*this.F.n8),g}throw new Error("invalid F2")}toString(A,I){return`[${this.F.toString(A.slice(0,this.F.n8),I)}, ${this.F.toString(A.slice(this.F.n8),I)}]`}fromRng(A){const I=this.F.fromRng(A),t=this.F.fromRng(A),i=new Uint8Array(2*this.F.n8);return i.set(I),i.set(t,this.F.n8),i}random(){return this.fromRng(Je())}toObject(A){return[this.F.toObject(A.slice(0,this.F.n8)),this.F.toObject(A.slice(this.F.n8,2*this.F.n8))]}fromObject(A){const I=new Uint8Array(2*this.F.n8),t=this.F.fromObject(A[0]),i=this.F.fromObject(A[1]);return I.set(t),I.set(i,this.F.n8),I}c1(A){return A.slice(0,this.F.n8)}c2(A){return A.slice(this.F.n8)}}class IC{constructor(A,I,t){this.tm=A,this.prefix=I,this.F=t,this.type="F3",this.m=3*t.m,this.n8=3*this.F.n8,this.n32=3*this.F.n32,this.n64=3*this.F.n64,this.pOp1=A.alloc(3*t.n8),this.pOp2=A.alloc(3*t.n8),this.pOp3=A.alloc(3*t.n8),this.tm.instance.exports[I+"_zero"](this.pOp1),this.zero=A.getBuff(this.pOp1,this.n8),this.tm.instance.exports[I+"_one"](this.pOp1),this.one=A.getBuff(this.pOp1,this.n8),this.negone=this.neg(this.one),this.two=this.add(this.one,this.one)}op2(A,I,t){return this.tm.setBuff(this.pOp1,I),this.tm.setBuff(this.pOp2,t),this.tm.instance.exports[this.prefix+A](this.pOp1,this.pOp2,this.pOp3),this.tm.getBuff(this.pOp3,this.n8)}op2Bool(A,I,t){return this.tm.setBuff(this.pOp1,I),this.tm.setBuff(this.pOp2,t),!!this.tm.instance.exports[this.prefix+A](this.pOp1,this.pOp2)}op1(A,I){return this.tm.setBuff(this.pOp1,I),this.tm.instance.exports[this.prefix+A](this.pOp1,this.pOp3),this.tm.getBuff(this.pOp3,this.n8)}op1Bool(A,I){return this.tm.setBuff(this.pOp1,I),!!this.tm.instance.exports[this.prefix+A](this.pOp1,this.pOp3)}eq(A,I){return this.op2Bool("_eq",A,I)}isZero(A){return this.op1Bool("_isZero",A)}add(A,I){return this.op2("_add",A,I)}sub(A,I){return this.op2("_sub",A,I)}neg(A){return this.op1("_neg",A)}inv(A){return this.op1("_inverse",A)}isNegative(A){return this.op1Bool("_isNegative",A)}toMontgomery(A){return this.op1("_toMontgomery",A)}fromMontgomery(A){return this.op1("_fromMontgomery",A)}mul(A,I){return this.op2("_mul",A,I)}div(A,I){return this.tm.setBuff(this.pOp1,A),this.tm.setBuff(this.pOp2,I),this.tm.instance.exports[this.prefix+"_inverse"](this.pOp2,this.pOp2),this.tm.instance.exports[this.prefix+"_mul"](this.pOp1,this.pOp2,this.pOp3),this.tm.getBuff(this.pOp3,this.n8)}square(A){return this.op1("_square",A)}isSquare(A){return this.op1Bool("_isSquare",A)}sqrt(A){return this.op1("_sqrt",A)}exp(A,I){return I instanceof Uint8Array||(I=Xg(Kg(I))),this.tm.setBuff(this.pOp1,A),this.tm.setBuff(this.pOp2,I),this.tm.instance.exports[this.prefix+"_exp"](this.pOp1,this.pOp2,I.byteLength,this.pOp3),this.getBuff(this.pOp3,this.n8)}e(A,I){if(A instanceof Uint8Array)return A;if(Array.isArray(A)&&3==A.length){const t=this.F.e(A[0],I),i=this.F.e(A[1],I),g=this.F.e(A[2],I),e=new Uint8Array(3*this.F.n8);return e.set(t),e.set(i,this.F.n8),e.set(g,2*this.F.n8),e}throw new Error("invalid F3")}toString(A,I){return`[${this.F.toString(A.slice(0,this.F.n8),I)}, ${this.F.toString(A.slice(this.F.n8,2*this.F.n8),I)}, ${this.F.toString(A.slice(2*this.F.n8),I)}]`}fromRng(A){const I=this.F.fromRng(A),t=this.F.fromRng(A),i=this.F.fromRng(A),g=new Uint8Array(3*this.F.n8);return g.set(I),g.set(t,this.F.n8),g.set(i,2*this.F.n8),g}random(){return this.fromRng(Je())}toObject(A){return[this.F.toObject(A.slice(0,this.F.n8)),this.F.toObject(A.slice(this.F.n8,2*this.F.n8)),this.F.toObject(A.slice(2*this.F.n8,3*this.F.n8))]}fromObject(A){const I=new Uint8Array(3*this.F.n8),t=this.F.fromObject(A[0]),i=this.F.fromObject(A[1]),g=this.F.fromObject(A[2]);return I.set(t),I.set(i,this.F.n8),I.set(g,2*this.F.n8),I}c1(A){return A.slice(0,this.F.n8)}c2(A){return A.slice(this.F.n8,2*this.F.n8)}c3(A){return A.slice(2*this.F.n8)}}class tC{constructor(A,I,t,i,g,e){this.tm=A,this.prefix=I,this.F=t,this.pOp1=A.alloc(3*t.n8),this.pOp2=A.alloc(3*t.n8),this.pOp3=A.alloc(3*t.n8),this.tm.instance.exports[I+"_zero"](this.pOp1),this.zero=this.tm.getBuff(this.pOp1,3*t.n8),this.tm.instance.exports[I+"_zeroAffine"](this.pOp1),this.zeroAffine=this.tm.getBuff(this.pOp1,2*t.n8),this.one=this.tm.getBuff(i,3*t.n8),this.g=this.one,this.oneAffine=this.tm.getBuff(i,2*t.n8),this.gAffine=this.oneAffine,this.b=this.tm.getBuff(g,t.n8),e&&(this.cofactor=Xg(e)),this.negone=this.neg(this.one),this.two=this.add(this.one,this.one),this.batchLEMtoC=_e(A,I+"_batchLEMtoC",2*t.n8,t.n8),this.batchLEMtoU=_e(A,I+"_batchLEMtoU",2*t.n8,2*t.n8),this.batchCtoLEM=_e(A,I+"_batchCtoLEM",t.n8,2*t.n8),this.batchUtoLEM=_e(A,I+"_batchUtoLEM",2*t.n8,2*t.n8),this.batchToJacobian=_e(A,I+"_batchToJacobian",2*t.n8,3*t.n8),this.batchToAffine=_e(A,I+"_batchToAffine",3*t.n8,2*t.n8)}op2(A,I,t){return this.tm.setBuff(this.pOp1,I),this.tm.setBuff(this.pOp2,t),this.tm.instance.exports[this.prefix+A](this.pOp1,this.pOp2,this.pOp3),this.tm.getBuff(this.pOp3,3*this.F.n8)}op2bool(A,I,t){return this.tm.setBuff(this.pOp1,I),this.tm.setBuff(this.pOp2,t),!!this.tm.instance.exports[this.prefix+A](this.pOp1,this.pOp2,this.pOp3)}op1(A,I){return this.tm.setBuff(this.pOp1,I),this.tm.instance.exports[this.prefix+A](this.pOp1,this.pOp3),this.tm.getBuff(this.pOp3,3*this.F.n8)}op1Affine(A,I){return this.tm.setBuff(this.pOp1,I),this.tm.instance.exports[this.prefix+A](this.pOp1,this.pOp3),this.tm.getBuff(this.pOp3,2*this.F.n8)}op1Bool(A,I){return this.tm.setBuff(this.pOp1,I),!!this.tm.instance.exports[this.prefix+A](this.pOp1,this.pOp3)}add(A,I){if(A.byteLength==3*this.F.n8){if(I.byteLength==3*this.F.n8)return this.op2("_add",A,I);if(I.byteLength==2*this.F.n8)return this.op2("_addMixed",A,I);throw new Error("invalid point size")}if(A.byteLength==2*this.F.n8){if(I.byteLength==3*this.F.n8)return this.op2("_addMixed",I,A);if(I.byteLength==2*this.F.n8)return this.op2("_addAffine",A,I);throw new Error("invalid point size")}throw new Error("invalid point size")}sub(A,I){if(A.byteLength==3*this.F.n8){if(I.byteLength==3*this.F.n8)return this.op2("_sub",A,I);if(I.byteLength==2*this.F.n8)return this.op2("_subMixed",A,I);throw new Error("invalid point size")}if(A.byteLength==2*this.F.n8){if(I.byteLength==3*this.F.n8)return this.op2("_subMixed",I,A);if(I.byteLength==2*this.F.n8)return this.op2("_subAffine",A,I);throw new Error("invalid point size")}throw new Error("invalid point size")}neg(A){if(A.byteLength==3*this.F.n8)return this.op1("_neg",A);if(A.byteLength==2*this.F.n8)return this.op1Affine("_negAffine",A);throw new Error("invalid point size")}double(A){if(A.byteLength==3*this.F.n8)return this.op1("_double",A);if(A.byteLength==2*this.F.n8)return this.op1("_doubleAffine",A);throw new Error("invalid point size")}isZero(A){if(A.byteLength==3*this.F.n8)return this.op1Bool("_isZero",A);if(A.byteLength==2*this.F.n8)return this.op1Bool("_isZeroAffine",A);throw new Error("invalid point size")}timesScalar(A,I){let t;if(I instanceof Uint8Array||(I=Xg(Kg(I))),A.byteLength==3*this.F.n8)t=this.prefix+"_timesScalar";else{if(A.byteLength!=2*this.F.n8)throw new Error("invalid point size");t=this.prefix+"_timesScalarAffine"}return this.tm.setBuff(this.pOp1,A),this.tm.setBuff(this.pOp2,I),this.tm.instance.exports[t](this.pOp1,this.pOp2,I.byteLength,this.pOp3),this.tm.getBuff(this.pOp3,3*this.F.n8)}timesFr(A,I){let t;if(A.byteLength==3*this.F.n8)t=this.prefix+"_timesFr";else{if(A.byteLength!=2*this.F.n8)throw new Error("invalid point size");t=this.prefix+"_timesFrAffine"}return this.tm.setBuff(this.pOp1,A),this.tm.setBuff(this.pOp2,I),this.tm.instance.exports[t](this.pOp1,this.pOp2,this.pOp3),this.tm.getBuff(this.pOp3,3*this.F.n8)}eq(A,I){if(A.byteLength==3*this.F.n8){if(I.byteLength==3*this.F.n8)return this.op2bool("_eq",A,I);if(I.byteLength==2*this.F.n8)return this.op2bool("_eqMixed",A,I);throw new Error("invalid point size")}if(A.byteLength==2*this.F.n8){if(I.byteLength==3*this.F.n8)return this.op2bool("_eqMixed",I,A);if(I.byteLength==2*this.F.n8)return this.op2bool("_eqAffine",A,I);throw new Error("invalid point size")}throw new Error("invalid point size")}toAffine(A){if(A.byteLength==3*this.F.n8)return this.op1Affine("_toAffine",A);if(A.byteLength==2*this.F.n8)return A;throw new Error("invalid point size")}toJacobian(A){if(A.byteLength==3*this.F.n8)return A;if(A.byteLength==2*this.F.n8)return this.op1("_toJacobian",A);throw new Error("invalid point size")}toRprUncompressed(A,I,t){if(this.tm.setBuff(this.pOp1,t),t.byteLength==3*this.F.n8)this.tm.instance.exports[this.prefix+"_toAffine"](this.pOp1,this.pOp1);else if(t.byteLength!=2*this.F.n8)throw new Error("invalid point size");this.tm.instance.exports[this.prefix+"_LEMtoU"](this.pOp1,this.pOp1);const i=this.tm.getBuff(this.pOp1,2*this.F.n8);A.set(i,I)}fromRprUncompressed(A,I){const t=A.slice(I,I+2*this.F.n8);return this.tm.setBuff(this.pOp1,t),this.tm.instance.exports[this.prefix+"_UtoLEM"](this.pOp1,this.pOp1),this.tm.getBuff(this.pOp1,2*this.F.n8)}toRprCompressed(A,I,t){if(this.tm.setBuff(this.pOp1,t),t.byteLength==3*this.F.n8)this.tm.instance.exports[this.prefix+"_toAffine"](this.pOp1,this.pOp1);else if(t.byteLength!=2*this.F.n8)throw new Error("invalid point size");this.tm.instance.exports[this.prefix+"_LEMtoC"](this.pOp1,this.pOp1);const i=this.tm.getBuff(this.pOp1,this.F.n8);A.set(i,I)}fromRprCompressed(A,I){const t=A.slice(I,I+this.F.n8);return this.tm.setBuff(this.pOp1,t),this.tm.instance.exports[this.prefix+"_CtoLEM"](this.pOp1,this.pOp2),this.tm.getBuff(this.pOp2,2*this.F.n8)}toUncompressed(A){const I=new Uint8Array(2*this.F.n8);return this.toRprUncompressed(I,0,A),I}toRprLEM(A,I,t){if(t.byteLength!=2*this.F.n8){if(t.byteLength!=3*this.F.n8)throw new Error("invalid point size");{this.tm.setBuff(this.pOp1,t),this.tm.instance.exports[this.prefix+"_toAffine"](this.pOp1,this.pOp1);const i=this.tm.getBuff(this.pOp1,2*this.F.n8);A.set(i,I)}}else A.set(t,I)}fromRprLEM(A,I){return I=I||0,A.slice(I,I+2*this.F.n8)}toString(A,I){if(A.byteLength==3*this.F.n8){return`[ ${this.F.toString(A.slice(0,this.F.n8),I)}, ${this.F.toString(A.slice(this.F.n8,2*this.F.n8),I)}, ${this.F.toString(A.slice(2*this.F.n8),I)} ]`}if(A.byteLength==2*this.F.n8){return`[ ${this.F.toString(A.slice(0,this.F.n8),I)}, ${this.F.toString(A.slice(this.F.n8),I)} ]`}throw new Error("invalid point size")}fromRng(A){const I=this.F;let t,i,g=[];do{g[0]=I.fromRng(A),t=A.nextBool(),i=I.add(I.mul(I.square(g[0]),g[0]),this.b)}while(!I.isSquare(i));g[1]=I.sqrt(i);t^I.isNegative(g[1])&&(g[1]=I.neg(g[1]));let e=new Uint8Array(2*this.F.n8);return e.set(g[0]),e.set(g[1],this.F.n8),this.cofactor&&(e=this.timesScalar(e,this.cofactor)),e}toObject(A){if(this.isZero(A))return[this.F.toObject(this.F.zero),this.F.toObject(this.F.one),this.F.toObject(this.F.zero)];const I=this.F.toObject(A.slice(0,this.F.n8)),t=this.F.toObject(A.slice(this.F.n8,2*this.F.n8));let i;return i=A.byteLength==3*this.F.n8?this.F.toObject(A.slice(2*this.F.n8,3*this.F.n8)):this.F.toObject(this.F.one),[I,t,i]}fromObject(A){const I=this.F.fromObject(A[0]),t=this.F.fromObject(A[1]);let i;if(i=3==A.length?this.F.fromObject(A[2]):this.F.one,this.F.isZero(i,this.F.one))return this.zeroAffine;if(this.F.eq(i,this.F.one)){const A=new Uint8Array(2*this.F.n8);return A.set(I),A.set(t,this.F.n8),A}{const A=new Uint8Array(3*this.F.n8);return A.set(I),A.set(t,this.F.n8),A.set(i,2*this.F.n8),A}}e(A){return A instanceof Uint8Array?A:this.fromObject(A)}x(A){return this.toAffine(A).slice(0,this.F.n8)}y(A){return this.toAffine(A).slice(this.F.n8)}}function iC(A){const I=32767;let t,i;async function g(A){const g=new Uint8Array(A.code),e=await WebAssembly.compile(g);i=new WebAssembly.Memory({initial:A.init,maximum:I}),t=await WebAssembly.instantiate(e,{env:{memory:i}})}function e(A){const t=new Uint32Array(i.buffer,0,1);for(;3&t[0];)t[0]++;const g=t[0];if(t[0]+=A,t[0]+A>i.buffer.byteLength){const g=i.buffer.byteLength/65536;let e=Math.floor((t[0]+A)/65536)+1;e>I&&(e=I),i.grow(e-g)}return g}function C(A){const I=e(A.byteLength);return Q(I,A),I}function n(A,I){const t=new Uint8Array(i.buffer);return new Uint8Array(t.buffer,t.byteOffset+A,I)}function Q(A,I){new Uint8Array(i.buffer).set(new Uint8Array(I),A)}function B(A){if("INIT"==A[0].cmd)return g(A[0]);const I={vars:[],out:[]},B=new Uint32Array(i.buffer,0,1)[0];for(let i=0;i<A.length;i++)switch(A[i].cmd){case"ALLOCSET":I.vars[A[i].var]=C(A[i].buff);break;case"ALLOC":I.vars[A[i].var]=e(A[i].len);break;case"SET":Q(I.vars[A[i].var],A[i].buff);break;case"CALL":{const g=[];for(let t=0;t<A[i].params.length;t++){const e=A[i].params[t];void 0!==e.var?g.push(I.vars[e.var]+(e.offset||0)):void 0!==e.val&&g.push(e.val)}t.exports[A[i].fnName](...g);break}case"GET":I.out[A[i].out]=n(I.vars[A[i].var],A[i].len).slice();break;default:throw new Error("Invalid cmd")}return new Uint32Array(i.buffer,0,1)[0]=B,I.out}return A&&(A.onmessage=function(I){let t;if(t=I.data?I.data:I,"INIT"==t[0].cmd)g(t[0]).then((function(){A.postMessage(t.result)}));else if("TERMINATE"==t[0].cmd)process.exit();else{const I=B(t);A.postMessage(I)}}),B}class gC{constructor(){this.promise=new Promise(((A,I)=>{this.reject=I,this.resolve=A}))}}function eC(A){for(var I=window.atob(A),t=I.length,i=new Uint8Array(t),g=0;g<t;g++)i[g]=I.charCodeAt(g);return i}const CC="data:application/javascript;base64,"+function(A){return window.btoa(A)}("("+iC.toString()+")(self)");class nC{constructor(){this.actionQueue=[],this.oldPFree=0}startSyncOp(){if(0!=this.oldPFree)throw new Error("Sync operation in progress");this.oldPFree=this.u32[0]}endSyncOp(){if(0==this.oldPFree)throw new Error("No sync operation in progress");this.u32[0]=this.oldPFree,this.oldPFree=0}postAction(A,I,t,i){if(this.working[A])throw new Error("Posting a job t a working worker");return this.working[A]=!0,this.pendingDeferreds[A]=i||new gC,this.workers[A].postMessage(I,t),this.pendingDeferreds[A].promise}processWorks(){for(let A=0;A<this.workers.length&&this.actionQueue.length>0;A++)if(0==this.working[A]){const I=this.actionQueue.shift();this.postAction(A,I.data,I.transfers,I.deferred)}}queueAction(A,I){const t=new gC;if(this.singleThread){const I=this.taskManager(A);t.resolve(I)}else this.actionQueue.push({data:A,transfers:I,deferred:t}),this.processWorks();return t.promise}resetMemory(){this.u32[0]=this.initalPFree}allocBuff(A){const I=this.alloc(A.byteLength);return this.setBuff(I,A),I}getBuff(A,I){return this.u8.slice(A,A+I)}setBuff(A,I){this.u8.set(new Uint8Array(I),A)}alloc(A){for(;3&this.u32[0];)this.u32[0]++;const I=this.u32[0];return this.u32[0]+=A,I}async terminate(){for(let A=0;A<this.workers.length;A++)this.workers[A].postMessage([{cmd:"TERMINATE"}]);var A;await(A=200,new Promise((I=>setTimeout(I,A))))}}function QC(A,I){const t=A[I],i=A.Fr,g=A.tm;A[I].batchApplyKey=async function(A,e,C,n,Q){let B,r,o,E,a;if(n=n||"affine",Q=Q||"affine","G1"==I)"jacobian"==n?(o=3*t.F.n8,B="g1m_batchApplyKey"):(o=2*t.F.n8,B="g1m_batchApplyKeyMixed"),E=3*t.F.n8,"jacobian"==Q?a=3*t.F.n8:(r="g1m_batchToAffine",a=2*t.F.n8);else if("G2"==I)"jacobian"==n?(o=3*t.F.n8,B="g2m_batchApplyKey"):(o=2*t.F.n8,B="g2m_batchApplyKeyMixed"),E=3*t.F.n8,"jacobian"==Q?a=3*t.F.n8:(r="g2m_batchToAffine",a=2*t.F.n8);else{if("Fr"!=I)throw new Error("Invalid group: "+I);B="frm_batchApplyKey",o=t.n8,E=t.n8,a=t.n8}const s=Math.floor(A.byteLength/o),h=Math.floor(s/g.concurrency),f=[];C=i.e(C);let w=i.e(e);for(let I=0;I<g.concurrency;I++){let t;if(t=I<g.concurrency-1?h:s-I*h,0==t)continue;const e=[];e.push({cmd:"ALLOCSET",var:0,buff:A.slice(I*h*o,I*h*o+t*o)}),e.push({cmd:"ALLOCSET",var:1,buff:w}),e.push({cmd:"ALLOCSET",var:2,buff:C}),e.push({cmd:"ALLOC",var:3,len:t*Math.max(E,a)}),e.push({cmd:"CALL",fnName:B,params:[{var:0},{val:t},{var:1},{var:2},{var:3}]}),r&&e.push({cmd:"CALL",fnName:r,params:[{var:3},{val:t},{var:3}]}),e.push({cmd:"GET",out:0,var:3,len:t*a}),f.push(g.queueAction(e)),w=i.mul(w,i.exp(C,t))}const D=await Promise.all(f);let c;c=A instanceof Te?new Te(s*a):new Uint8Array(s*a);let u=0;for(let A=0;A<D.length;A++)c.set(D[A][0],u),u+=D[A][0].byteLength;return c}}const BC=[1,1,1,1,2,3,4,5,6,7,7,8,9,10,11,12,13,13,14,15,16,16,17,17,17,17,17,17,17,17,17,17];function rC(A,I){const t=A[I],i=t.tm;async function g(A,i,g,e,C){if(!(A instanceof Uint8Array))throw e&&e.error(`${C} _multiExpChunk buffBases is not Uint8Array`),new Error(`${C} _multiExpChunk buffBases is not Uint8Array`);if(!(i instanceof Uint8Array))throw e&&e.error(`${C} _multiExpChunk buffScalars is not Uint8Array`),new Error(`${C} _multiExpChunk buffScalars is not Uint8Array`);let n,Q;if(g=g||"affine","G1"==I)"affine"==g?(Q="g1m_multiexpAffine_chunk",n=2*t.F.n8):(Q="g1m_multiexp_chunk",n=3*t.F.n8);else{if("G2"!=I)throw new Error("Invalid group");"affine"==g?(Q="g2m_multiexpAffine_chunk",n=2*t.F.n8):(Q="g2m_multiexp_chunk",n=3*t.F.n8)}const B=Math.floor(A.byteLength/n);if(0==B)return t.zero;const r=Math.floor(i.byteLength/B);if(r*B!=i.byteLength)throw new Error("Scalar size does not match");const o=BC[Pe(B)],E=Math.floor((8*r-1)/o)+1,a=[];for(let I=0;I<E;I++){const g=[{cmd:"ALLOCSET",var:0,buff:A},{cmd:"ALLOCSET",var:1,buff:i},{cmd:"ALLOC",var:2,len:3*t.F.n8},{cmd:"CALL",fnName:Q,params:[{var:0},{var:1},{val:r},{val:B},{val:I*o},{val:Math.min(8*r-I*o,o)},{var:2}]},{cmd:"GET",out:0,var:2,len:3*t.F.n8}];a.push(t.tm.queueAction(g))}const s=await Promise.all(a);let h=t.zero;for(let A=s.length-1;A>=0;A--){if(!t.isZero(h))for(let A=0;A<o;A++)h=t.double(h);h=t.add(h,s[A][0])}return h}async function e(A,e,C,n,Q){const B=1<<22;let r;if("G1"==I)r="affine"==C?2*t.F.n8:3*t.F.n8;else{if("G2"!=I)throw new Error("Invalid group");r="affine"==C?2*t.F.n8:3*t.F.n8}const o=Math.floor(A.byteLength/r),E=Math.floor(e.byteLength/o);if(E*o!=e.byteLength)throw new Error("Scalar size does not match");const a=BC[Pe(o)],s=Math.floor((8*E-1)/a)+1;let h;h=Math.floor(o/(i.concurrency/s)),h>B&&(h=B),h<1024&&(h=1024);const f=[];for(let I=0;I<o;I+=h){n&&n.debug(`Multiexp start: ${Q}: ${I}/${o}`);const t=Math.min(o-I,h),i=A.slice(I*r,(I+t)*r),B=e.slice(I*E,(I+t)*E);f.push(g(i,B,C,n,Q).then((A=>(n&&n.debug(`Multiexp end: ${Q}: ${I}/${o}`),A))))}const w=await Promise.all(f);let D=t.zero;for(let A=w.length-1;A>=0;A--)D=t.add(D,w[A]);return D}t.multiExp=async function(A,I,t,i){return await e(A,I,"jacobian",t,i)},t.multiExpAffine=async function(A,I,t,i){return await e(A,I,"affine",t,i)}}function oC(A,I){const t=A[I],i=A.Fr,g=t.tm;async function e(n,Q,B,r,o,E){B=B||"affine",r=r||"affine";let a,s,h,f,w,D,c,u;"G1"==I?("affine"==B?(a=2*t.F.n8,f="g1m_batchToJacobian"):a=3*t.F.n8,s=3*t.F.n8,Q&&(u="g1m_fftFinal"),c="g1m_fftJoin",D="g1m_fftMix","affine"==r?(h=2*t.F.n8,w="g1m_batchToAffine"):h=3*t.F.n8):"G2"==I?("affine"==B?(a=2*t.F.n8,f="g2m_batchToJacobian"):a=3*t.F.n8,s=3*t.F.n8,Q&&(u="g2m_fftFinal"),c="g2m_fftJoin",D="g2m_fftMix","affine"==r?(h=2*t.F.n8,w="g2m_batchToAffine"):h=3*t.F.n8):"Fr"==I&&(a=t.n8,s=t.n8,h=t.n8,Q&&(u="frm_fftFinal"),D="frm_fftMix",c="frm_fftJoin");let l=!1;Array.isArray(n)&&(n=A.array2buffer(n,a),l=!0);const y=n.byteLength/a,p=Pe(y);if(1<<p!=y)throw new Error("fft must be multiple of 2");if(p==i.s+1){let I;return I=Q?await async function(A,I,t,g,n){let Q,B;Q=A.slice(0,A.byteLength/2),B=A.slice(A.byteLength/2,A.byteLength);const r=[];r.push(e(Q,!0,I,"jacobian",g,n)),r.push(e(B,!0,I,"jacobian",g,n)),[Q,B]=await Promise.all(r);const o=await C(Q,B,"fftJoinExtInv",i.one,i.shiftInv,"jacobian",t,g,n);let E;E=o[0].byteLength>1<<28?new Te(2*o[0].byteLength):new Uint8Array(2*o[0].byteLength);return E.set(o[0]),E.set(o[1],o[0].byteLength),E}(n,B,r,o,E):await async function(A,I,t,g,n){let Q,B;Q=A.slice(0,A.byteLength/2),B=A.slice(A.byteLength/2,A.byteLength);const r=[];[Q,B]=await C(Q,B,"fftJoinExt",i.one,i.shift,I,"jacobian",g,n),r.push(e(Q,!1,"jacobian",t,g,n)),r.push(e(B,!1,"jacobian",t,g,n));const o=await Promise.all(r);let E;E=o[0].byteLength>1<<28?new Te(2*o[0].byteLength):new Uint8Array(2*o[0].byteLength);return E.set(o[0]),E.set(o[1],o[0].byteLength),E}(n,B,r,o,E),l?A.buffer2array(I,h):I}let F,M,m;Q&&(F=i.inv(i.e(y))),Xe(n,a);let d=Math.min(16384,y),G=y/d;for(;G<g.concurrency&&d>=16;)G*=2,d/=2;const H=Pe(d),U=[];for(let A=0;A<G;A++){o&&o.debug(`${E}: fft ${p} mix start: ${A}/${G}`);const I=[];I.push({cmd:"ALLOC",var:0,len:s*d});const t=n.slice(d*A*a,d*(A+1)*a);I.push({cmd:"SET",var:0,buff:t}),f&&I.push({cmd:"CALL",fnName:f,params:[{var:0},{val:d},{var:0}]});for(let A=1;A<=H;A++)I.push({cmd:"CALL",fnName:D,params:[{var:0},{val:d},{val:A}]});H==p?(u&&(I.push({cmd:"ALLOCSET",var:1,buff:F}),I.push({cmd:"CALL",fnName:u,params:[{var:0},{val:d},{var:1}]})),w&&I.push({cmd:"CALL",fnName:w,params:[{var:0},{val:d},{var:0}]}),I.push({cmd:"GET",out:0,var:0,len:d*h})):I.push({cmd:"GET",out:0,var:0,len:s*d}),U.push(g.queueAction(I).then((I=>(o&&o.debug(`${E}: fft ${p} mix end: ${A}/${G}`),I))))}m=await Promise.all(U);for(let A=0;A<G;A++)m[A]=m[A][0];for(let A=H+1;A<=p;A++){o&&o.debug(`${E}: fft ${p} join: ${A}/${p}`);const I=1<<p-A,t=G/I,e=[];for(let C=0;C<I;C++)for(let n=0;n<t/2;n++){const Q=i.exp(i.w[A],n*d),B=i.w[A],r=C*t+n,a=C*t+n+t/2,f=[];f.push({cmd:"ALLOCSET",var:0,buff:m[r]}),f.push({cmd:"ALLOCSET",var:1,buff:m[a]}),f.push({cmd:"ALLOCSET",var:2,buff:Q}),f.push({cmd:"ALLOCSET",var:3,buff:B}),f.push({cmd:"CALL",fnName:c,params:[{var:0},{var:1},{val:d},{var:2},{var:3}]}),A==p?(u&&(f.push({cmd:"ALLOCSET",var:4,buff:F}),f.push({cmd:"CALL",fnName:u,params:[{var:0},{val:d},{var:4}]}),f.push({cmd:"CALL",fnName:u,params:[{var:1},{val:d},{var:4}]})),w&&(f.push({cmd:"CALL",fnName:w,params:[{var:0},{val:d},{var:0}]}),f.push({cmd:"CALL",fnName:w,params:[{var:1},{val:d},{var:1}]})),f.push({cmd:"GET",out:0,var:0,len:d*h}),f.push({cmd:"GET",out:1,var:1,len:d*h})):(f.push({cmd:"GET",out:0,var:0,len:d*s}),f.push({cmd:"GET",out:1,var:1,len:d*s})),e.push(g.queueAction(f).then((i=>(o&&o.debug(`${E}: fft ${p} join ${A}/${p} ${C+1}/${I} ${n}/${t/2}`),i))))}const C=await Promise.all(e);for(let A=0;A<I;A++)for(let I=0;I<t/2;I++){const i=A*t+I,g=A*t+I+t/2,e=C.shift();m[i]=e[0],m[g]=e[1]}}if(M=n instanceof Te?new Te(y*h):new Uint8Array(y*h),Q){M.set(m[0].slice((d-1)*h));let A=h;for(let I=G-1;I>0;I--)M.set(m[I],A),A+=d*h,delete m[I];M.set(m[0].slice(0,(d-1)*h),A),delete m[0]}else for(let A=0;A<G;A++)M.set(m[A],d*h*A),delete m[A];return l?A.buffer2array(M,h):M}async function C(A,e,C,n,Q,B,r,o,E){let a,s,h,f,w,D;if("G1"==I)"affine"==B?(w=2*t.F.n8,s="g1m_batchToJacobian"):w=3*t.F.n8,D=3*t.F.n8,a="g1m_"+C,"affine"==r?(h="g1m_batchToAffine",f=2*t.F.n8):f=3*t.F.n8;else if("G2"==I)"affine"==B?(w=2*t.F.n8,s="g2m_batchToJacobian"):w=3*t.F.n8,a="g2m_"+C,D=3*t.F.n8,"affine"==r?(h="g2m_batchToAffine",f=2*t.F.n8):f=3*t.F.n8;else{if("Fr"!=I)throw new Error("Invalid group");w=i.n8,f=i.n8,D=i.n8,a="frm_"+C}if(A.byteLength!=e.byteLength)throw new Error("Invalid buffer size");const c=Math.floor(A.byteLength/w);if(c!=1<<Pe(c))throw new Error("Invalid number of points");let u=Math.floor(c/g.concurrency);u<16&&(u=16),u>65536&&(u=65536);const l=[];for(let I=0;I<c;I+=u){o&&o.debug(`${E}: fftJoinExt Start: ${I}/${c}`);const t=Math.min(c-I,u),C=i.mul(n,i.exp(Q,I)),B=[],r=A.slice(I*w,(I+t)*w),y=e.slice(I*w,(I+t)*w);B.push({cmd:"ALLOC",var:0,len:D*t}),B.push({cmd:"SET",var:0,buff:r}),B.push({cmd:"ALLOC",var:1,len:D*t}),B.push({cmd:"SET",var:1,buff:y}),B.push({cmd:"ALLOCSET",var:2,buff:C}),B.push({cmd:"ALLOCSET",var:3,buff:Q}),s&&(B.push({cmd:"CALL",fnName:s,params:[{var:0},{val:t},{var:0}]}),B.push({cmd:"CALL",fnName:s,params:[{var:1},{val:t},{var:1}]})),B.push({cmd:"CALL",fnName:a,params:[{var:0},{var:1},{val:t},{var:2},{var:3},{val:i.s}]}),h&&(B.push({cmd:"CALL",fnName:h,params:[{var:0},{val:t},{var:0}]}),B.push({cmd:"CALL",fnName:h,params:[{var:1},{val:t},{var:1}]})),B.push({cmd:"GET",out:0,var:0,len:t*f}),B.push({cmd:"GET",out:1,var:1,len:t*f}),l.push(g.queueAction(B).then((A=>(o&&o.debug(`${E}: fftJoinExt End: ${I}/${c}`),A))))}const y=await Promise.all(l);let p,F;c*f>1<<28?(p=new Te(c*f),F=new Te(c*f)):(p=new Uint8Array(c*f),F=new Uint8Array(c*f));let M=0;for(let A=0;A<y.length;A++)p.set(y[A][0],M),F.set(y[A][1],M),M+=y[A][0].byteLength;return[p,F]}t.fft=async function(A,I,t,i,g){return await e(A,!1,I,t,i,g)},t.ifft=async function(A,I,t,i,g){return await e(A,!0,I,t,i,g)},t.lagrangeEvaluations=async function(A,g,n,Q,B){let r;if(g=g||"affine",n=n||"affine","G1"==I)r="affine"==g?2*t.F.n8:3*t.F.n8;else if("G2"==I)r="affine"==g?2*t.F.n8:3*t.F.n8;else{if("Fr"!=I)throw new Error("Invalid group");r=i.n8}const o=A.byteLength/r,E=Pe(o);if(2**E*r!=A.byteLength)throw Q&&Q.error("lagrangeEvaluations iinvalid input size"),new Error("lagrangeEvaluations invalid Input size");if(E<=i.s)return await t.ifft(A,g,n,Q,B);if(E>i.s+1)throw Q&&Q.error("lagrangeEvaluations input too big"),new Error("lagrangeEvaluations input too big");let a=A.slice(0,A.byteLength/2),s=A.slice(A.byteLength/2,A.byteLength);const h=i.exp(i.shift,o/2),f=i.inv(i.sub(i.one,h));[a,s]=await C(a,s,"prepareLagrangeEvaluation",f,i.shiftInv,g,"jacobian",Q,B+" prep");const w=[];let D;return w.push(e(a,!0,"jacobian",n,Q,B+" t0")),w.push(e(s,!0,"jacobian",n,Q,B+" t1")),[a,s]=await Promise.all(w),D=a.byteLength>1<<28?new Te(2*a.byteLength):new Uint8Array(2*a.byteLength),D.set(a),D.set(s,a.byteLength),D},t.fftMix=async function(A){const e=3*t.F.n8;let C,n;if("G1"==I)C="g1m_fftMix",n="g1m_fftJoin";else if("G2"==I)C="g2m_fftMix",n="g2m_fftJoin";else{if("Fr"!=I)throw new Error("Invalid group");C="frm_fftMix",n="frm_fftJoin"}const Q=Math.floor(A.byteLength/e),B=Pe(Q);let r=1<<Pe(g.concurrency);Q<=2*r&&(r=1);const o=Q/r,E=Pe(o),a=[];for(let I=0;I<r;I++){const t=[],i=A.slice(I*o*e,(I+1)*o*e);t.push({cmd:"ALLOCSET",var:0,buff:i});for(let A=1;A<=E;A++)t.push({cmd:"CALL",fnName:C,params:[{var:0},{val:o},{val:A}]});t.push({cmd:"GET",out:0,var:0,len:o*e}),a.push(g.queueAction(t))}const s=await Promise.all(a),h=[];for(let A=0;A<s.length;A++)h[A]=s[A][0];for(let A=E+1;A<=B;A++){const I=1<<B-A,t=r/I,C=[];for(let Q=0;Q<I;Q++)for(let I=0;I<t/2;I++){const B=i.exp(i.w[A],I*o),r=i.w[A],E=Q*t+I,a=Q*t+I+t/2,s=[];s.push({cmd:"ALLOCSET",var:0,buff:h[E]}),s.push({cmd:"ALLOCSET",var:1,buff:h[a]}),s.push({cmd:"ALLOCSET",var:2,buff:B}),s.push({cmd:"ALLOCSET",var:3,buff:r}),s.push({cmd:"CALL",fnName:n,params:[{var:0},{var:1},{val:o},{var:2},{var:3}]}),s.push({cmd:"GET",out:0,var:0,len:o*e}),s.push({cmd:"GET",out:1,var:1,len:o*e}),C.push(g.queueAction(s))}const Q=await Promise.all(C);for(let A=0;A<I;A++)for(let I=0;I<t/2;I++){const i=A*t+I,g=A*t+I+t/2,e=Q.shift();h[i]=e[0],h[g]=e[1]}}let f;f=A instanceof Te?new Te(Q*e):new Uint8Array(Q*e);let w=0;for(let A=0;A<r;A++)f.set(h[A],w),w+=h[A].byteLength;return f},t.fftJoin=async function(A,e,C,n){const Q=3*t.F.n8;let B;if("G1"==I)B="g1m_fftJoin";else if("G2"==I)B="g2m_fftJoin";else{if("Fr"!=I)throw new Error("Invalid group");B="frm_fftJoin"}if(A.byteLength!=e.byteLength)throw new Error("Invalid buffer size");const r=Math.floor(A.byteLength/Q);if(r!=1<<Pe(r))throw new Error("Invalid number of points");let o=1<<Pe(g.concurrency);r<=2*o&&(o=1);const E=r/o,a=[];for(let I=0;I<o;I++){const t=[],r=i.mul(C,i.exp(n,I*E)),o=A.slice(I*E*Q,(I+1)*E*Q),s=e.slice(I*E*Q,(I+1)*E*Q);t.push({cmd:"ALLOCSET",var:0,buff:o}),t.push({cmd:"ALLOCSET",var:1,buff:s}),t.push({cmd:"ALLOCSET",var:2,buff:r}),t.push({cmd:"ALLOCSET",var:3,buff:n}),t.push({cmd:"CALL",fnName:B,params:[{var:0},{var:1},{val:E},{var:2},{var:3}]}),t.push({cmd:"GET",out:0,var:0,len:E*Q}),t.push({cmd:"GET",out:1,var:1,len:E*Q}),a.push(g.queueAction(t))}const s=await Promise.all(a);let h,f;A instanceof Te?(h=new Te(r*Q),f=new Te(r*Q)):(h=new Uint8Array(r*Q),f=new Uint8Array(r*Q));let w=0;for(let A=0;A<s.length;A++)h.set(s[A][0],w),f.set(s[A][1],w),w+=s[A][0].byteLength;return[h,f]},t.fftFinal=async function(A,i){const e=3*t.F.n8,C=2*t.F.n8;let n,Q;if("G1"==I)n="g1m_fftFinal",Q="g1m_batchToAffine";else{if("G2"!=I)throw new Error("Invalid group");n="g2m_fftFinal",Q="g2m_batchToAffine"}const B=Math.floor(A.byteLength/e);if(B!=1<<Pe(B))throw new Error("Invalid number of points");const r=Math.floor(B/g.concurrency),o=[];for(let I=0;I<g.concurrency;I++){let t;if(t=I<g.concurrency-1?r:B-I*r,0==t)continue;const E=[],a=A.slice(I*r*e,(I*r+t)*e);E.push({cmd:"ALLOCSET",var:0,buff:a}),E.push({cmd:"ALLOCSET",var:1,buff:i}),E.push({cmd:"CALL",fnName:n,params:[{var:0},{val:t},{var:1}]}),E.push({cmd:"CALL",fnName:Q,params:[{var:0},{val:t},{var:0}]}),E.push({cmd:"GET",out:0,var:0,len:t*C}),o.push(g.queueAction(E))}const E=await Promise.all(o);let a;a=A instanceof Te?new Te(B*C):new Uint8Array(B*C);let s=0;for(let A=E.length-1;A>=0;A--)a.set(E[A][0],s),s+=E[A][0].byteLength;return a}}async function EC(A){const I=await async function(A,I){const t=new nC;t.memory=new WebAssembly.Memory({initial:25}),t.u8=new Uint8Array(t.memory.buffer),t.u32=new Uint32Array(t.memory.buffer);const i=await WebAssembly.compile(eC(A.code));if(t.instance=await WebAssembly.instantiate(i,{env:{memory:t.memory}}),t.singleThread=I,t.initalPFree=t.u32[0],t.pq=A.pq,t.pr=A.pr,t.pG1gen=A.pG1gen,t.pG1zero=A.pG1zero,t.pG2gen=A.pG2gen,t.pG2zero=A.pG2zero,t.pOneT=A.pOneT,I)t.code=eC(A.code),t.taskManager=iC(),await t.taskManager([{cmd:"INIT",init:25,code:t.code.slice()}]),t.concurrency=1;else{let I;t.workers=[],t.pendingDeferreds=[],t.working=[],I="object"==typeof navigator&&navigator.hardwareConcurrency?navigator.hardwareConcurrency:$A.cpus().length,I>64&&(I=64),t.concurrency=I;for(let A=0;A<I;A++)t.workers[A]=new AI(CC),t.workers[A].addEventListener("message",g(A)),t.working[A]=!1;const i=[];for(let I=0;I<t.workers.length;I++){const g=eC(A.code).slice();i.push(t.postAction(I,[{cmd:"INIT",init:25,code:g}],[g.buffer]))}await Promise.all(i)}return t;function g(A){return function(I){let i;i=I&&I.data?I.data:I,t.working[A]=!1,t.pendingDeferreds[A].resolve(i),t.processWorks()}}}(A.wasm,A.singleThread),t={};return t.q=Kg(A.wasm.q),t.r=Kg(A.wasm.r),t.name=A.name,t.tm=I,t.prePSize=A.wasm.prePSize,t.preQSize=A.wasm.preQSize,t.Fr=new $e(I,"frm",A.n8r,A.r),t.F1=new $e(I,"f1m",A.n8q,A.q),t.F2=new AC(I,"f2m",t.F1),t.G1=new tC(I,"g1m",t.F1,A.wasm.pG1gen,A.wasm.pG1b,A.cofactorG1),t.G2=new tC(I,"g2m",t.F2,A.wasm.pG2gen,A.wasm.pG2b,A.cofactorG2),t.F6=new IC(I,"f6m",t.F2),t.F12=new AC(I,"ftm",t.F6),t.Gt=t.F12,QC(t,"G1"),QC(t,"G2"),QC(t,"Fr"),rC(t,"G1"),rC(t,"G2"),oC(t,"G1"),oC(t,"G2"),oC(t,"Fr"),function(A){const I=A.tm;A.pairing=function(t,i){I.startSyncOp();const g=I.allocBuff(A.G1.toJacobian(t)),e=I.allocBuff(A.G2.toJacobian(i)),C=I.alloc(A.Gt.n8);I.instance.exports[A.name+"_pairing"](g,e,C);const n=I.getBuff(C,A.Gt.n8);return I.endSyncOp(),n},A.pairingEq=async function(){let t,i;arguments.length%2==1?(t=arguments[arguments.length-1],i=(arguments.length-1)/2):(t=A.Gt.one,i=arguments.length/2);const g=[];for(let t=0;t<i;t++){const i=[],e=A.G1.toJacobian(arguments[2*t]);i.push({cmd:"ALLOCSET",var:0,buff:e}),i.push({cmd:"ALLOC",var:1,len:A.prePSize});const C=A.G2.toJacobian(arguments[2*t+1]);i.push({cmd:"ALLOCSET",var:2,buff:C}),i.push({cmd:"ALLOC",var:3,len:A.preQSize}),i.push({cmd:"ALLOC",var:4,len:A.Gt.n8}),i.push({cmd:"CALL",fnName:A.name+"_prepareG1",params:[{var:0},{var:1}]}),i.push({cmd:"CALL",fnName:A.name+"_prepareG2",params:[{var:2},{var:3}]}),i.push({cmd:"CALL",fnName:A.name+"_millerLoop",params:[{var:1},{var:3},{var:4}]}),i.push({cmd:"GET",out:0,var:4,len:A.Gt.n8}),g.push(I.queueAction(i))}const e=await Promise.all(g);I.startSyncOp();const C=I.alloc(A.Gt.n8);I.instance.exports.ftm_one(C);for(let A=0;A<e.length;A++){const t=I.allocBuff(e[A][0]);I.instance.exports.ftm_mul(C,t,C)}I.instance.exports[A.name+"_finalExponentiation"](C,C);const n=I.allocBuff(t),Q=!!I.instance.exports.ftm_eq(C,n);return I.endSyncOp(),Q},A.prepareG1=function(A){this.tm.startSyncOp();const I=this.tm.allocBuff(A),t=this.tm.alloc(this.prePSize);this.tm.instance.exports[this.name+"_prepareG1"](I,t);const i=this.tm.getBuff(t,this.prePSize);return this.tm.endSyncOp(),i},A.prepareG2=function(A){this.tm.startSyncOp();const I=this.tm.allocBuff(A),t=this.tm.alloc(this.preQSize);this.tm.instance.exports[this.name+"_prepareG2"](I,t);const i=this.tm.getBuff(t,this.preQSize);return this.tm.endSyncOp(),i},A.millerLoop=function(A,I){this.tm.startSyncOp();const t=this.tm.allocBuff(A),i=this.tm.allocBuff(I),g=this.tm.alloc(this.Gt.n8);this.tm.instance.exports[this.name+"_millerLoop"](t,i,g);const e=this.tm.getBuff(g,this.Gt.n8);return this.tm.endSyncOp(),e},A.finalExponentiation=function(A){this.tm.startSyncOp();const I=this.tm.allocBuff(A),t=this.tm.alloc(this.Gt.n8);this.tm.instance.exports[this.name+"_finalExponentiation"](I,t);const i=this.tm.getBuff(t,this.Gt.n8);return this.tm.endSyncOp(),i}}(t),t.array2buffer=function(A,I){const t=new Uint8Array(I*A.length);for(let i=0;i<A.length;i++)t.set(A[i],i*I);return t},t.buffer2array=function(A,I){const t=A.byteLength/I,i=new Array(t);for(let g=0;g<t;g++)i[g]=A.slice(g*I,g*I+I);return i},t}async function aC(A){if(!A&&GA.curve_bn128)return GA.curve_bn128;const I={name:"bn128",wasm:HA.bn128_wasm,q:Kg("21888242871839275222246405745257275088696311157297823662689037894645226208583"),r:Kg("21888242871839275222246405745257275088548364400416034343698204186575808495617"),n8q:32,n8r:32,cofactorG2:Kg("30644e72e131a029b85045b68181585e06ceecda572a2489345f2299c0f9fa8d",16),singleThread:!!A},t=await EC(I);return t.terminate=async function(){I.singleThread||(GA.curve_bn128=null,await this.tm.terminate())},A||(GA.curve_bn128=t),t}GA.curve_bn128=null,GA.curve_bls12381=null;const sC=Kg("73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001",16),hC=Kg("21888242871839275222246405745257275088548364400416034343698204186575808495617");Kg("1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaaab",16),Kg("21888242871839275222246405745257275088696311157297823662689037894645226208583");const fC=262144,wC={get:function(A,I){return isNaN(I)?A[I]:A.getElement(I)},set:function(A,I,t){return isNaN(I)?(A[I]=t,!0):A.setElement(I,t)}};class DC{constructor(A){this.length=A||0,this.arr=new Array(fC);for(let I=0;I<A;I+=fC)this.arr[I/fC]=new Array(Math.min(fC,A-I));return this}push(){for(let A=0;A<arguments.length;A++)this.setElement(this.length,arguments[A])}slice(A,I){const t=new Array(I-A);for(let i=A;i<I;i++)t[i-A]=this.getElement(i);return t}getElement(A){A=parseInt(A);const I=Math.floor(A/fC),t=A%fC;return this.arr[I]?this.arr[I][t]:void 0}setElement(A,I){A=parseInt(A);const t=Math.floor(A/fC);this.arr[t]||(this.arr[t]=new Array(fC));const i=A%fC;return this.arr[t][i]=I,A>=this.length&&(this.length=A+1),!0}getKeys(){const A=new cC;for(let I=0;I<this.arr.length;I++)if(this.arr[I])for(let t=0;t<this.arr[I].length;t++)void 0!==this.arr[I][t]&&A.push(I*fC+t);return A}}class cC{constructor(A){const I=new DC(A);return new Proxy(I,wC)}}async function uC(A,I,t){const i={};return await JI(A,I,1),i.n8=await A.readULE32(),i.prime=await RI(A,i.n8),i.curve=await async function(A,I){let t;if(we(A,hC))t=await aC(I);else{if(!we(A,sC))throw new Error(`Curve not supported: ${Pg(A)}`);t=await aC(I)}return t}(i.prime,t),i.nVars=await A.readULE32(),i.nOutputs=await A.readULE32(),i.nPubInputs=await A.readULE32(),i.nPrvInputs=await A.readULE32(),i.nLabels=await A.readULE64(),i.nConstraints=await A.readULE32(),await SI(A),i}async function lC(A,I,t,i,g,e){const{fd:C,sections:n}=await bI(A,"r1cs",1),Q=await uC(C,n,i);return I&&(Q.constraints=await async function(A,I,t,i,g){const e=await qI(A,I,2);let C,n=0;C=t.nConstraints>1<<20?new cC:[];for(let A=0;A<t.nConstraints;A++){i&&A%1e5==0&&i.info(`${g}: Loading constraints: ${A}/${t.nConstraints}`);const I=Q();C.push(I)}return C;function Q(){const A=[];return A[0]=B(),A[1]=B(),A[2]=B(),A}function B(){const A={},I=e.slice(n,n+4);n+=4;const i=new DataView(I.buffer).getUint32(0,!0),g=e.slice(n,n+(4+t.n8)*i);n+=(4+t.n8)*i;const C=new DataView(g.buffer);for(let I=0;I<i;I++){const i=C.getUint32(I*(4+t.n8),!0),e=t.curve.Fr.fromRprLE(g,I*(4+t.n8)+4);A[i]=e}return A}}(C,n,Q,g,e)),t&&(Q.map=await async function(A,I,t,i,g){const e=await qI(A,I,3);let C,n=0;C=t.nVars>1<<20?new cC:[];for(let A=0;A<t.nVars;A++){i&&A%1e4==0&&i.info(`${g}: Loading map: ${A}/${t.nVars}`);const I=Q();C.push(I)}return C;function Q(){const A=e.slice(n,n+8);n+=8;const I=new DataView(A.buffer),t=I.getUint32(0,!0);return 4294967296*I.getUint32(4,!0)+t}}(C,n,Q,g,e)),await C.close(),Q}const yC=aI.e("73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001",16),pC=aI.e("21888242871839275222246405745257275088548364400416034343698204186575808495617");function FC(A,I){if(I instanceof Uint8Array)return A.toString(I);if(Array.isArray(I))return I.map(FC.bind(null,A));if("object"==typeof I){const t={};return Object.keys(I).forEach((i=>{t[i]=FC(A,I[i])})),t}return"bigint"==typeof I||void 0!==I.eq?I.toString(10):I}var MC=Object.freeze({__proto__:null,print:function(A,I,t){for(let I=0;I<A.constraints.length;I++)i(A.constraints[I]);function i(i){const g=t=>{let i="";return Object.keys(t).forEach((g=>{let e=I.varIdx2Name[g];"one"==e&&(e="");let C=A.curve.Fr.toString(t[g]);"1"==C&&(C=""),"-1"==C&&(C="-"),""!=i&&"-"!=C[0]&&(C="+"+C),""!=i&&(C=" "+C),i=i+C+e})),i},e=`[ ${g(i[0])} ] * [ ${g(i[1])} ] - [ ${g(i[2])} ] = 0`;t&&t.info(e)}},info:async function(A,I){const t=await lC(A);return aI.eq(t.prime,pC)?I&&I.info("Curve: bn-128"):aI.eq(t.prime,yC)?I&&I.info("Curve: bls12-381"):I&&I.info(`Unknown Curve. Prime: ${aI.toString(t.prime)}`),I&&I.info(`# of Wires: ${t.nVars}`),I&&I.info(`# of Constraints: ${t.nConstraints}`),I&&I.info(`# of Private Inputs: ${t.nPrvInputs}`),I&&I.info(`# of Public Inputs: ${t.nPubInputs}`),I&&I.info(`# of Labels: ${t.nLabels}`),I&&I.info(`# of Outputs: ${t.nOutputs}`),t},exportJson:async function(A,I){const t=await lC(A,!0,!0,!0,I),i=t.curve.Fr;return delete t.curve,FC(i,t)}});async function mC(A){const I={labelIdx2Name:["one"],varIdx2Name:["one"],componentIdx2Name:[]},t=await UI(A),i=await t.read(t.totalSize),g=new TextDecoder("utf-8").decode(i).split("\n");for(let A=0;A<g.length;A++){const t=g[A].split(",");4==t.length&&(I.varIdx2Name[t[1]]?I.varIdx2Name[t[1]]+="|"+t[3]:I.varIdx2Name[t[1]]=t[3],I.labelIdx2Name[t[0]]=t[3],I.componentIdx2Name[t[2]]||(I.componentIdx2Name[t[2]]=e(t[3])))}return await t.close(),I;function e(A){const I=A.split(".");return I.pop(),I.join(".")}}var dC=Object.freeze({__proto__:null,calculate:_i,debug:async function(A,I,t,i,g,e){const C=await UI(I),n=await C.read(C.totalSize);await C.close();let Q={sanityCheck:!0},B=await mC(i);g.set&&(B||(B=await mC(i)),Q.logSetSignal=function(A,I){e&&e.info("SET "+B.labelIdx2Name[A]+" <-- "+I.toString())}),g.get&&(B||(B=await mC(i)),Q.logGetSignal=function(A,I){e&&e.info("GET "+B.labelIdx2Name[A]+" --\x3e "+I.toString())}),g.trigger&&(B||(B=await mC(i)),Q.logStartComponent=function(A){e&&e.info("START: "+B.componentIdx2Name[A])},Q.logFinishComponent=function(A){e&&e.info("FINISH: "+B.componentIdx2Name[A])}),Q.sym=B;const r=await Wi(n,Q),o=await r.calculateWitness(A),E=await LI(t,"wtns",2,2);await async function(A,I,t){await kI(A,1);const i=8*(Math.floor((aI.bitLength(t)-1)/64)+1);await A.writeULE32(i),await vI(A,t,i),await A.writeULE32(I.length),await NI(A),await kI(A,2);for(let t=0;t<I.length;t++)await vI(A,I[t],i);await NI(A)}(E,o,r.prime),await E.close()},exportJson:async function(A){return await async function(A){const{fd:I,sections:t}=await bI(A,"wtns",2),{n8:i,nWitness:g}=await lt(I,t);await JI(I,t,2);const e=[];for(let A=0;A<g;A++){const A=await RI(I,i);e.push(A)}return await SI(I),await I.close(),e}(A)}});const GC=262144,HC={get:function(A,I){return isNaN(I)?A[I]:A.getElement(I)},set:function(A,I,t){return isNaN(I)?(A[I]=t,!0):A.setElement(I,t)}};class UC{constructor(A){this.length=A||0,this.arr=new Array(GC);for(let I=0;I<A;I+=GC)this.arr[I/GC]=new Array(Math.min(GC,A-I));return this}push(){for(let A=0;A<arguments.length;A++)this.setElement(this.length,arguments[A])}slice(A,I){const t=new Array(I-A);for(let i=A;i<I;i++)t[i-A]=this.getElement(i);return t}getElement(A){A=parseInt(A);const I=Math.floor(A/GC),t=A%GC;return this.arr[I]?this.arr[I][t]:void 0}setElement(A,I){A=parseInt(A);const t=Math.floor(A/GC);this.arr[t]||(this.arr[t]=new Array(GC));const i=A%GC;return this.arr[t][i]=I,A>=this.length&&(this.length=A+1),!0}getKeys(){const A=new bC;for(let I=0;I<this.arr.length;I++)if(this.arr[I])for(let t=0;t<this.arr[I].length;t++)void 0!==this.arr[I][t]&&A.push(I*GC+t);return A}}class bC{constructor(A){const I=new UC(A);return new Proxy(I,HC)}}async function LC(A,I,t,i){await TI.ready();const g=TI(64),{fd:e,sections:C}=await bI(I,"ptau",1),{curve:n,power:Q}=await ng(e,C),{fd:B,sections:r}=await bI(A,"r1cs",1),o=await uC(B,r,!1),E=await LI(t,"zkey",1,10,1<<22,1<<24),a=2*n.G1.F.n8,s=2*n.G2.F.n8;if(o.prime!=n.r)return i&&i.error("r1cs curve does not match powers of tau ceremony curve"),-1;const h=At(o.nConstraints+o.nPubInputs+o.nOutputs+1-1)+1;if(h>Q)return i&&i.error(`circuit too big for this power of tau ceremony. ${o.nConstraints}*2 > 2**${Q}`),-1;if(!C[12])return i&&i.error("Powers of tau is not prepared."),-1;const f=o.nOutputs+o.nPubInputs,w=2**h;await kI(E,1),await E.writeULE32(1),await NI(E),await kI(E,2);const D=n.q,c=8*(Math.floor((aI.bitLength(D)-1)/64)+1),u=n.r,l=8*(Math.floor((aI.bitLength(u)-1)/64)+1),y=aI.mod(aI.shl(1,8*l),u),p=n.Fr.e(aI.mod(aI.mul(y,y),u));let F,M,m;await E.writeULE32(c),await vI(E,D,c),await E.writeULE32(l),await vI(E,u,l),await E.writeULE32(o.nVars),await E.writeULE32(f),await E.writeULE32(w),F=await e.read(a,C[4][0].p),await E.write(F),F=await n.G1.batchLEMtoU(F),g.update(F),M=await e.read(a,C[5][0].p),await E.write(M),M=await n.G1.batchLEMtoU(M),g.update(M),m=await e.read(s,C[6][0].p),await E.write(m),m=await n.G2.batchLEMtoU(m),g.update(m);const d=new Uint8Array(a);n.G1.toRprLEM(d,0,n.G1.g);const G=new Uint8Array(s);n.G2.toRprLEM(G,0,n.G2.g);const H=new Uint8Array(a);n.G1.toRprUncompressed(H,0,n.G1.g);const U=new Uint8Array(s);n.G2.toRprUncompressed(U,0,n.G2.g),await E.write(G),await E.write(d),await E.write(G),g.update(U),g.update(H),g.update(U),await NI(E),i&&i.info("Reading r1cs");let b=await qI(B,r,2);const L=new bC(o.nVars),k=new bC(o.nVars),N=new bC(o.nVars),J=new bC(o.nVars-f-1),S=new Array(f+1);i&&i.info("Reading tauG1");let v=await qI(e,C,12,(w-1)*a,w*a);i&&i.info("Reading tauG2");let R=await qI(e,C,13,(w-1)*s,w*s);i&&i.info("Reading alphatauG1");let Y=await qI(e,C,14,(w-1)*a,w*a);i&&i.info("Reading betatauG1");let q=await qI(e,C,15,(w-1)*a,w*a);await async function(){const A=new Uint8Array(12+n.Fr.n8),I=new DataView(A.buffer),t=new Uint8Array(n.Fr.n8);n.Fr.toRprLE(t,0,n.Fr.e(1));let g=0;function e(){const A=b.slice(g,g+4);g+=4;return new DataView(A.buffer).getUint32(0,!0)}const C=new bC;for(let A=0;A<o.nConstraints;A++){i&&A%1e4==0&&i.debug(`processing constraints: ${A}/${o.nConstraints}`);const I=e();for(let t=0;t<I;t++){const I=e(),t=g;g+=n.Fr.n8;const i=0,Q=a*A,B=3,r=a*A;void 0===L[I]&&(L[I]=[]),L[I].push([i,Q,t]),I<=f?(void 0===S[I]&&(S[I]=[]),S[I].push([B,r,t])):(void 0===J[I-f-1]&&(J[I-f-1]=[]),J[I-f-1].push([B,r,t])),C.push([0,A,I,t])}const t=e();for(let I=0;I<t;I++){const I=e(),t=g;g+=n.Fr.n8;const i=0,Q=a*A,B=1,r=s*A,o=2,E=a*A;void 0===k[I]&&(k[I]=[]),k[I].push([i,Q,t]),void 0===N[I]&&(N[I]=[]),N[I].push([B,r,t]),I<=f?(void 0===S[I]&&(S[I]=[]),S[I].push([o,E,t])):(void 0===J[I-f-1]&&(J[I-f-1]=[]),J[I-f-1].push([o,E,t])),C.push([1,A,I,t])}const Q=e();for(let I=0;I<Q;I++){const I=e(),t=g;g+=n.Fr.n8;const i=0,C=a*A;I<=f?(void 0===S[I]&&(S[I]=[]),S[I].push([i,C,t])):(void 0===J[I-f-1]&&(J[I-f-1]=[]),J[I-f-1].push([i,C,t]))}}for(let A=0;A<=f;A++){const I=0,t=a*(o.nConstraints+A),i=3,g=a*(o.nConstraints+A);void 0===L[A]&&(L[A]=[]),L[A].push([I,t,-1]),void 0===S[A]&&(S[A]=[]),S[A].push([i,g,-1]),C.push([0,o.nConstraints+A,A,-1])}await kI(E,4);const Q=new VA(C.length*(12+n.Fr.n8)+4),B=new Uint8Array(4);new DataView(B.buffer).setUint32(0,C.length,!0),Q.set(B);let r=4;for(let A=0;A<C.length;A++)i&&A%1e5==0&&i.debug(`writing coeffs: ${A}/${C.length}`),h(C[A]);function h(i){let g;I.setUint32(0,i[0],!0),I.setUint32(4,i[1],!0),I.setUint32(8,i[2],!0),g=i[3]>=0?n.Fr.fromRprLE(b.slice(i[3],i[3]+n.Fr.n8),0):n.Fr.fromRprLE(t,0);const e=n.Fr.mul(g,p);n.Fr.toRprLE(A,12,e),Q.set(A,r),r+=A.length}await E.write(Q),await NI(E)}(),await P(3,"G1",S,"IC"),await async function(){await kI(E,9);const A=new VA(w*a);if(h<n.Fr.s){let I=await qI(e,C,12,(2*w-1)*a,2*w*a);for(let t=0;t<w;t++){i&&t%1e4==0&&i.debug(`spliting buffer: ${t}/${w}`);const g=I.slice((2*t+1)*a,(2*t+1)*a+a);A.set(g,t*a)}}else{if(h!=n.Fr.s)throw i&&i.error("Circuit too big"),new Error("Circuit too big for this curve");{const I=C[12][0].p+(2**(h+1)-1)*a;await e.readToBuffer(A,0,w*a,I+w*a)}}await E.write(A),await NI(E)}(),await async function(){V(w-1);for(let A=0;A<w-1;A+=16384){i&&i.debug(`HashingHPoints: ${A}/${w}`);const I=Math.min(w-1,16384);await O(A,I)}}(),await P(8,"G1",J,"C"),await P(5,"G1",L,"A"),await P(6,"G1",k,"B1"),await P(7,"G2",N,"B2");const x=g.digest();return await kI(E,10),await E.write(x),await E.writeULE32(0),await NI(E),i&&i.info(It(x,"Circuit hash: ")),await E.close(),await B.close(),await e.close(),x;async function P(A,I,t,e){const C=n[I];V(t.length),await kI(E,A);let Q=[],B=0;for(;B<t.length;){let A=0;for(;B<t.length&&A<n.tm.concurrency;){i&&i.debug(`Writing points start ${e}: ${B}/${t.length}`);let g=1,C=t[B]?t[B].length:0;for(;B+g<t.length&&C+(t[B+g]?t[B+g].length:0)<32768&&g<32768;)C+=t[B+g]?t[B+g].length:0,g++;const n=t.slice(B,B+g),r=B;Q.push(X(I,n,i,e).then((A=>(i&&i.debug(`Writing points end ${e}: ${r}/${t.length}`),A)))),B+=g,A++}const r=await Promise.all(Q);for(let A=0;A<r.length;A++){await E.write(r[A][0]);const I=await C.batchLEMtoU(r[A][0]);g.update(I)}Q=[]}await NI(E)}async function X(A,I,t,i){const g=n[A],e=2*g.F.n8,C=3*g.F.n8,Q=2*g.F.n8;let B,r,o,E;if("G1"==A)B="g1m_timesScalarAffine",r="g1m_multiexpAffine",o="g1m_batchToAffine",E="g1m_zero";else{if("G2"!=A)throw new Error("Invalid group");B="g2m_timesScalarAffine",r="g2m_multiexpAffine",o="g2m_batchToAffine",E="g2m_zero"}let a,s,h=0;for(let A=0;A<I.length;A++)h+=I[A]?I[A].length:0;h>32768?(a=new VA(h*e),s=new VA(h*n.Fr.n8)):(a=new Uint8Array(h*e),s=new Uint8Array(h*n.Fr.n8));let f=0,w=0;const D=[v,R,Y,q],c=new Uint8Array(n.Fr.n8);n.Fr.toRprLE(c,0,n.Fr.e(1));let u=0;for(let A=0;A<I.length;A++)if(I[A])for(let g=0;g<I[A].length;g++)t&&g&&g%1e4==0&&t.debug(`Configuring big array ${i}: ${g}/${I[A].length}`),a.set(D[I[A][g][0]].slice(I[A][g][1],I[A][g][1]+e),u*e),I[A][g][2]>=0?s.set(b.slice(I[A][g][2],I[A][g][2]+n.Fr.n8),u*n.Fr.n8):s.set(c,u*n.Fr.n8),u++;if(I.length>1){const A=[];A.push({cmd:"ALLOCSET",var:0,buff:a}),A.push({cmd:"ALLOCSET",var:1,buff:s}),A.push({cmd:"ALLOC",var:2,len:I.length*C}),f=0,w=0;let t=0;for(let i=0;i<I.length;i++)I[i]?(1==I[i].length?A.push({cmd:"CALL",fnName:B,params:[{var:0,offset:f},{var:1,offset:w},{val:n.Fr.n8},{var:2,offset:t}]}):A.push({cmd:"CALL",fnName:r,params:[{var:0,offset:f},{var:1,offset:w},{val:n.Fr.n8},{val:I[i].length},{var:2,offset:t}]}),f+=e*I[i].length,w+=n.Fr.n8*I[i].length,t+=C):(A.push({cmd:"CALL",fnName:E,params:[{var:2,offset:t}]}),t+=C);A.push({cmd:"CALL",fnName:o,params:[{var:2},{val:I.length},{var:2}]}),A.push({cmd:"GET",out:0,var:2,len:I.length*Q});return await n.tm.queueAction(A)}{let A=await g.multiExpAffine(a,s,t,i);return A=[g.toAffine(A)],A}}async function O(A,I){const t=await e.read(I*a,C[2][0].p+(A+w)*a),i=await e.read(I*a,C[2][0].p+A*a),Q=n.tm.concurrency,B=Math.floor(I/Q),r=[];for(let A=0;A<Q;A++){let g;if(g=A<Q-1?B:I-A*B,0==g)continue;const e=t.slice(A*B*a,(A*B+g)*a),C=i.slice(A*B*a,(A*B+g)*a);r.push(Z(e,C))}const o=await Promise.all(r);for(let A=0;A<o.length;A++)g.update(o[A][0])}async function Z(A,I){const t=A.byteLength/a,i=3*n.G1.F.n8,g=[];g.push({cmd:"ALLOCSET",var:0,buff:A}),g.push({cmd:"ALLOCSET",var:1,buff:I}),g.push({cmd:"ALLOC",var:2,len:t*i});for(let A=0;A<t;A++)g.push({cmd:"CALL",fnName:"g1m_subAffine",params:[{var:0,offset:A*a},{var:1,offset:A*a},{var:2,offset:A*i}]});g.push({cmd:"CALL",fnName:"g1m_batchToAffine",params:[{var:2},{val:t},{var:2}]}),g.push({cmd:"CALL",fnName:"g1m_batchLEMtoU",params:[{var:2},{val:t},{var:2}]}),g.push({cmd:"GET",out:0,var:2,len:t*a});return await n.tm.queueAction(g)}function V(A){const I=new Uint8Array(4);new DataView(I.buffer,I.byteOffset,I.byteLength).setUint32(0,A,!1),g.update(I)}}const kC=gt;async function NC(A,I,t,i){let g;await TI.ready();const{fd:e,sections:C}=await bI(t,"zkey",2),n=await st(e,C,!1);if("groth16"!=n.protocol)throw new Error("zkey file is not groth16");const Q=await OI(n.q),B=2*Q.G1.F.n8,r=await ft(e,Q,C),o=TI(64);o.update(r.csHash);let E=Q.G1.g;for(let A=0;A<r.contributions.length;A++){const I=r.contributions[A],t=it(o);if(ct(t,Q,I.delta.g1_s),ct(t,Q,I.delta.g1_sx),!tt(t.digest(),I.transcript))return console.log(`INVALID(${A}): Inconsistent transcript `),!1;const i=tg(Q,I.transcript);if(g=await kC(Q,I.delta.g1_s,I.delta.g1_sx,i,I.delta.g2_spx),!0!==g)return console.log(`INVALID(${A}): public key G1 and G2 do not have the same ration `),!1;if(g=await kC(Q,E,I.deltaAfter,i,I.delta.g2_spx),!0!==g)return console.log(`INVALID(${A}): deltaAfter does not fillow the public key `),!1;if(1==I.type){const t=Ct(I.beaconHash,I.numIterationsExp),i=Q.Fr.fromRng(t),g=Q.G1.toAffine(Q.G1.fromRng(t)),e=Q.G1.toAffine(Q.G1.timesFr(g,i));if(!0!==Q.G1.eq(g,I.delta.g1_s))return console.log(`INVALID(${A}): Key of the beacon does not match. g1_s `),!1;if(!0!==Q.G1.eq(e,I.delta.g1_sx))return console.log(`INVALID(${A}): Key of the beacon does not match. g1_sx `),!1}ut(o,Q,I);const e=TI(64);ut(e,Q,I),I.contributionHash=e.digest(),E=I.deltaAfter}const{fd:a,sections:s}=await bI(A,"zkey",2),h=await st(a,s,!1);if("groth16"!=h.protocol)throw new Error("zkeyinit file is not groth16");if(!aI.eq(h.q,n.q)||!aI.eq(h.r,n.r)||h.n8q!=n.n8q||h.n8r!=n.n8r)return i&&i.error("INVALID: Different curves"),!1;if(h.nVars!=n.nVars||h.nPublic!=n.nPublic||h.domainSize!=n.domainSize)return i&&i.error("INVALID: Different circuit parameters"),!1;if(!Q.G1.eq(n.vk_alpha_1,h.vk_alpha_1))return i&&i.error("INVALID: Invalid alpha1"),!1;if(!Q.G1.eq(n.vk_beta_1,h.vk_beta_1))return i&&i.error("INVALID: Invalid beta1"),!1;if(!Q.G2.eq(n.vk_beta_2,h.vk_beta_2))return i&&i.error("INVALID: Invalid beta2"),!1;if(!Q.G2.eq(n.vk_gamma_2,h.vk_gamma_2))return i&&i.error("INVALID: Invalid gamma2"),!1;if(!Q.G1.eq(n.vk_delta_1,E))return i&&i.error("INVALID: Invalid delta1"),!1;if(g=await kC(Q,Q.G1.g,E,Q.G2.g,n.vk_delta_2),!0!==g)return i&&i.error("INVALID: Invalid delta2"),!1;const f=await ft(a,Q,s);if(!tt(r.csHash,f.csHash))return i&&i.error("INVALID: Circuit does not match"),!1;if(C[8][0].size!=B*(n.nVars-n.nPublic-1))return i&&i.error("INVALID: Invalid L section size"),!1;if(C[9][0].size!=B*n.domainSize)return i&&i.error("INVALID: Invalid H section size"),!1;let w;if(w=await xI(e,C,a,s,3),!w)return i&&i.error("INVALID: IC section is not identical"),!1;if(w=await xI(e,C,a,s,4),!w)return i&&i.error("Coeffs section is not identical"),!1;if(w=await xI(e,C,a,s,5),!w)return i&&i.error("A section is not identical"),!1;if(w=await xI(e,C,a,s,6),!w)return i&&i.error("B1 section is not identical"),!1;if(w=await xI(e,C,a,s,7),!w)return i&&i.error("B2 section is not identical"),!1;if(g=await async function(A,I,t,e,C,n,B,r,o){const E=1<<20,a=Q[A],s=2*a.F.n8;await JI(I,t,n),await JI(e,C,n);let h=a.zero,f=a.zero;const w=t[n][0].size/s;for(let A=0;A<w;A+=E){i&&i.debug(`Same ratio check ${o}: ${A}/${w}`);const t=Math.min(w-A,E),g=await I.read(t*s),C=await e.read(t*s),n=new Uint8Array(4*t);cA.randomFillSync(n);const Q=await a.multiExpAffine(g,n),B=await a.multiExpAffine(C,n);h=a.add(h,Q),f=a.add(f,B)}return await SI(I),await SI(e),0==w||(g=await kC(Q,h,f,B,r),!0===g)}("G1",a,s,e,C,8,n.vk_delta_2,h.vk_delta_2,"L section"),!0!==g)return i&&i.error("L section does not match"),!1;if(g=await async function(){const A=1<<20,t=Q.G1,B=Q.Fr,r=2*t.F.n8,{fd:o,sections:E}=await bI(I,"ptau",1);let a=new VA(n.domainSize*n.n8r);const s=new Array(8);for(let A=0;A<8;A++)s[A]=cA.randomBytes(4).readUInt32BE(0,!0);const f=new DA(s);for(let A=0;A<n.domainSize-1;A++){const I=B.fromRng(f);B.toRprLE(a,A*n.n8r,I)}B.toRprLE(a,(n.domainSize-1)*n.n8r,B.zero);let w,c=t.zero;for(let I=0;I<n.domainSize;I+=A){i&&i.debug(`H Verificaition(tau): ${I}/${n.domainSize}`);const g=Math.min(n.domainSize-I,A),e=await o.read(r*g,E[2][0].p+n.domainSize*r+I*r),C=await o.read(r*g,E[2][0].p+I*r),Q=await D(e,C),B=a.slice(I*n.n8r,(I+g)*n.n8r),s=await t.multiExpAffine(Q,B);c=t.add(c,s)}if(a=await B.batchToMontgomery(a),n.power<B.s)w=B.neg(B.e(2));else{const A=2**B.s,I=B.exp(B.shift,A);w=B.sub(I,B.one)}const u=n.power<B.s?B.w[n.power+1]:B.shift;a=await B.batchApplyKey(a,w,u),a=await B.fft(a),a=await B.batchFromMontgomery(a),await JI(e,C,9);let l=t.zero;for(let I=0;I<n.domainSize;I+=A){i&&i.debug(`H Verificaition(lagrange): ${I}/${n.domainSize}`);const g=Math.min(n.domainSize-I,A),C=await e.read(r*g),Q=a.slice(I*n.n8r,(I+g)*n.n8r),B=await t.multiExpAffine(C,Q);l=t.add(l,B)}return await SI(e),g=await kC(Q,c,l,n.vk_delta_2,h.vk_delta_2),!0===g}(),!0!==g)return i&&i.error("H section does not match"),!1;i&&i.info(It(r.csHash,"Circuit Hash: ")),await e.close(),await a.close();for(let A=r.contributions.length-1;A>=0;A--){const I=r.contributions[A];i&&i.info("-------------------------"),i&&i.info(It(I.contributionHash,`contribution #${A+1} ${I.name?I.name:""}:`)),1==I.type&&(i&&i.info(`Beacon generator: ${Qt(I.beaconHash)}`),i&&i.info(`Beacon iterations Exp: ${I.numIterationsExp}`))}return i&&i.info("-------------------------"),i&&i.info("ZKey Ok!"),!0;async function D(A,I){const t=2*Q.G1.F.n8,i=A.byteLength/t,g=Q.tm.concurrency,e=Math.floor(i/g),C=[];for(let t=0;t<g;t++){let n;if(n=t<g-1?e:i-t*e,0==n)continue;const Q=A.slice(t*e*B,(t*e+n)*B),r=I.slice(t*e*B,(t*e+n)*B);C.push(c(Q,r))}const n=await Promise.all(C),r=new Uint8Array(i*t);let o=0;for(let A=0;A<n.length;A++)r.set(n[A][0],o),o+=n[A][0].byteLength;return r}async function c(A,I){const t=2*Q.G1.F.n8,i=3*Q.G1.F.n8,g=A.byteLength/t,e=[];e.push({cmd:"ALLOCSET",var:0,buff:A}),e.push({cmd:"ALLOCSET",var:1,buff:I}),e.push({cmd:"ALLOC",var:2,len:g*i});for(let A=0;A<g;A++)e.push({cmd:"CALL",fnName:"g1m_subAffine",params:[{var:0,offset:A*t},{var:1,offset:A*t},{var:2,offset:A*i}]});e.push({cmd:"CALL",fnName:"g1m_batchToAffine",params:[{var:2},{val:g},{var:2}]}),e.push({cmd:"GET",out:0,var:2,len:g*t});return await Q.tm.queueAction(e)}}const{stringifyBigInts:JC}=sI;async function SC(A){const{fd:I,sections:t}=await bI(A,"zkey",2),i=await st(I,t);let g;if("groth16"==i.protocol)g=await async function(A,I,t){const i=await OI(A.q),g=2*i.G1.F.n8,e=await i.pairing(A.vk_alpha_1,A.vk_beta_2);let C={protocol:A.protocol,curve:i.name,nPublic:A.nPublic,vk_alpha_1:i.G1.toObject(A.vk_alpha_1),vk_beta_2:i.G2.toObject(A.vk_beta_2),vk_gamma_2:i.G2.toObject(A.vk_gamma_2),vk_delta_2:i.G2.toObject(A.vk_delta_2),vk_alphabeta_12:i.Gt.toObject(e)};await JI(I,t,3),C.IC=[];for(let t=0;t<=A.nPublic;t++){const A=await I.read(g),t=i.G1.toObject(A);C.IC.push(t)}return await SI(I),C=JC(C),C}(i,I,t);else{if("plonk"!=i.protocol)throw new Error("zkey file is not groth16");g=await async function(A){const I=await OI(A.q);let t={protocol:A.protocol,curve:I.name,nPublic:A.nPublic,power:A.power,k1:I.Fr.toObject(A.k1),k2:I.Fr.toObject(A.k2),Qm:I.G1.toObject(A.Qm),Ql:I.G1.toObject(A.Ql),Qr:I.G1.toObject(A.Qr),Qo:I.G1.toObject(A.Qo),Qc:I.G1.toObject(A.Qc),S1:I.G1.toObject(A.S1),S2:I.G1.toObject(A.S2),S3:I.G1.toObject(A.S3),X_2:I.G2.toObject(A.X_2),w:I.Fr.toObject(I.Fr.w[A.power])};return t=JC(t),t}(i)}return await I.close(),g}var vC={};var RC=Object.freeze({__proto__:null,newZKey:LC,exportBellman:async function(A,I,t){const{fd:i,sections:g}=await bI(A,"zkey",2),e=await st(i,g);if("groth16"!=e.protocol)throw new Error("zkey file is not groth16");const C=await OI(e.q),n=2*C.G1.F.n8,Q=2*C.G2.F.n8,B=await ft(i,C,g),r=await HI(I);let o;await D(e.vk_alpha_1),await D(e.vk_beta_1),await c(e.vk_beta_2),await c(e.vk_gamma_2),await D(e.vk_delta_1),await c(e.vk_delta_2),o=await qI(i,g,3),o=await C.G1.batchLEMtoU(o),await u("G1",o);const E=await qI(i,g,9);let a,s,h,f,w;a=await C.G1.fft(E,"affine","jacobian",t),a=await C.G1.batchApplyKey(a,C.Fr.neg(C.Fr.e(2)),C.Fr.w[e.power+1],"jacobian","affine",t),a=a.slice(0,a.byteLength-n),a=await C.G1.batchLEMtoU(a),await u("G1",a),s=await qI(i,g,8),s=await C.G1.batchLEMtoU(s),await u("G1",s),h=await qI(i,g,5),h=await C.G1.batchLEMtoU(h),await u("G1",h),f=await qI(i,g,6),f=await C.G1.batchLEMtoU(f),await u("G1",f),w=await qI(i,g,7),w=await C.G2.batchLEMtoU(w),await u("G2",w),await r.write(B.csHash),await async function(A){const I=new Uint8Array(4);new DataView(I.buffer,I.byteOffset,I.byteLength).setUint32(0,A,!1),await r.write(I)}(B.contributions.length);for(let A=0;A<B.contributions.length;A++){const I=B.contributions[A];await D(I.deltaAfter),await D(I.delta.g1_s),await D(I.delta.g1_sx),await c(I.delta.g2_spx),await r.write(I.transcript)}async function D(A){const I=new Uint8Array(n);C.G1.toRprUncompressed(I,0,A),await r.write(I)}async function c(A){const I=new Uint8Array(Q);C.G2.toRprUncompressed(I,0,A),await r.write(I)}async function u(A,I){let t;t="G1"==A?n:Q;const i=new Uint8Array(4);new DataView(i.buffer,i.byteOffset,i.byteLength).setUint32(0,I.byteLength/t,!1),await r.write(i),await r.write(I)}await i.close(),await r.close()},importBellman:async function(A,I,t,i,g){const{fd:e,sections:C}=await bI(A,"zkey",2),n=await st(e,C,!1);if("groth16"!=n.protocol)throw new Error("zkey file is not groth16");const Q=await OI(n.q),B=2*Q.G1.F.n8,r=2*Q.G2.F.n8,o=await ft(e,Q,C),E={},a=await UI(I);a.pos=3*B+3*r+8+B*n.nVars+4+B*(n.domainSize-1)+4+B*n.nVars+4+B*n.nVars+4+r*n.nVars,E.csHash=await a.read(64);const s=await a.readUBE32();E.contributions=[];for(let A=0;A<s;A++){const I={delta:{}};I.deltaAfter=await y(a),I.delta.g1_s=await y(a),I.delta.g1_sx=await y(a),I.delta.g2_spx=await p(a),I.transcript=await a.read(64),A<o.contributions.length&&(I.type=o.contributions[A].type,1==I.type&&(I.beaconHash=o.contributions[A].beaconHash,I.numIterationsExp=o.contributions[A].numIterationsExp),o.contributions[A].name&&(I.name=o.contributions[A].name)),E.contributions.push(I)}if(!tt(E.csHash,o.csHash))return g&&g.error("Hash of the original circuit does not match with the MPC one"),!1;if(o.contributions.length>E.contributions.length)return g&&g.error("The impoerted file does not include new contributions"),!1;for(let A=0;A<o.contributions.length;A++)if(!F(o.contributions[A],E.contributions[A]))return g&&g.error(`Previos contribution ${A} does not match`),!1;if(i)for(let A=o.contributions.length;A<E.contributions.length;A++)E.contributions[A].name=i;const h=await LI(t,"zkey",1,10);if(a.pos=0,a.pos+=B,a.pos+=B,a.pos+=r,a.pos+=r,n.vk_delta_1=await y(a),n.vk_delta_2=await p(a),await Bt(h,n),await a.readUBE32()!=n.nPublic+1)return g&&g.error("Invalid number of points in IC"),await h.discard(),!1;if(a.pos+=B*(n.nPublic+1),await YI(e,C,h,3),await YI(e,C,h,4),await a.readUBE32()!=n.domainSize-1)return g&&g.error("Invalid number of points in H"),await h.discard(),!1;let f;const w=await a.read(B*(n.domainSize-1)),D=await Q.G1.batchUtoLEM(w);f=new Uint8Array(n.domainSize*B),f.set(D),Q.G1.toRprLEM(f,B*(n.domainSize-1),Q.G1.zeroAffine);const c=Q.Fr.neg(Q.Fr.inv(Q.Fr.e(2))),u=Q.Fr.inv(Q.Fr.w[n.power+1]);if(f=await Q.G1.batchApplyKey(f,c,u,"affine","jacobian",g),f=await Q.G1.ifft(f,"jacobian","affine",g),await kI(h,9),await h.write(f),await NI(h),await a.readUBE32()!=n.nVars-n.nPublic-1)return g&&g.error("Invalid number of points in L"),await h.discard(),!1;let l;return l=await a.read(B*(n.nVars-n.nPublic-1)),l=await Q.G1.batchUtoLEM(l),await kI(h,8),await h.write(l),await NI(h),await a.readUBE32()!=n.nVars?(g&&g.error("Invalid number of points in A"),await h.discard(),!1):(a.pos+=B*n.nVars,await YI(e,C,h,5),await a.readUBE32()!=n.nVars?(g&&g.error("Invalid number of points in B1"),await h.discard(),!1):(a.pos+=B*n.nVars,await YI(e,C,h,6),await a.readUBE32()!=n.nVars?(g&&g.error("Invalid number of points in B2"),await h.discard(),!1):(a.pos+=r*n.nVars,await YI(e,C,h,7),await Dt(h,Q,E),await a.close(),await h.close(),await e.close(),!0)));async function y(A){const I=await A.read(2*Q.G1.F.n8);return Q.G1.fromRprUncompressed(I,0)}async function p(A){const I=await A.read(2*Q.G2.F.n8);return Q.G2.fromRprUncompressed(I,0)}function F(A,I){return!!Q.G1.eq(A.deltaAfter,I.deltaAfter)&&(!!Q.G1.eq(A.delta.g1_s,I.delta.g1_s)&&(!!Q.G1.eq(A.delta.g1_sx,I.delta.g1_sx)&&(!!Q.G2.eq(A.delta.g2_spx,I.delta.g2_spx)&&!!tt(A.transcript,I.transcript))))}},verifyFromR1cs:async function(A,I,t,i){const g={type:"bigMem"};return await LC(A,I,g,i),await NC(g,I,t,i)},verifyFromInit:NC,contribute:async function(A,I,t,i,g){await TI.ready();const{fd:e,sections:C}=await bI(A,"zkey",2),n=await st(e,C);if("groth16"!=n.protocol)throw new Error("zkey file is not groth16");const Q=await OI(n.q),B=await ft(e,Q,C),r=await LI(I,"zkey",1,10),o=await et(i),E=TI(64);E.update(B.csHash);for(let A=0;A<B.contributions.length;A++)ut(E,Q,B.contributions[A]);const a={delta:{}};a.delta.prvKey=Q.Fr.fromRng(o),a.delta.g1_s=Q.G1.toAffine(Q.G1.fromRng(o)),a.delta.g1_sx=Q.G1.toAffine(Q.G1.timesFr(a.delta.g1_s,a.delta.prvKey)),ct(E,Q,a.delta.g1_s),ct(E,Q,a.delta.g1_sx),a.transcript=E.digest(),a.delta.g2_sp=tg(Q,a.transcript),a.delta.g2_spx=Q.G2.toAffine(Q.G2.timesFr(a.delta.g2_sp,a.delta.prvKey)),n.vk_delta_1=Q.G1.timesFr(n.vk_delta_1,a.delta.prvKey),n.vk_delta_2=Q.G2.timesFr(n.vk_delta_2,a.delta.prvKey),a.deltaAfter=n.vk_delta_1,a.type=0,t&&(a.name=t),B.contributions.push(a),await Bt(r,n),await YI(e,C,r,3),await YI(e,C,r,4),await YI(e,C,r,5),await YI(e,C,r,6),await YI(e,C,r,7);const s=Q.Fr.inv(a.delta.prvKey);await Dg(e,C,r,8,Q,"G1",s,Q.Fr.e(1),"L Section",g),await Dg(e,C,r,9,Q,"G1",s,Q.Fr.e(1),"H Section",g),await Dt(r,Q,B),await e.close(),await r.close();const h=TI(64);ut(h,Q,a);const f=h.digest();return g&&g.info(It(B.csHash,"Circuit Hash: ")),g&&g.info(It(f,"Contribution Hash: ")),f},beacon:async function(A,I,t,i,g,e){await TI.ready();const C=nt(i);if(0==C.byteLength||2*C.byteLength!=i.length)return e&&e.error("Invalid Beacon Hash. (It must be a valid hexadecimal sequence)"),!1;if(C.length>=256)return e&&e.error("Maximum lenght of beacon hash is 255 bytes"),!1;if((g=parseInt(g))<10||g>63)return e&&e.error("Invalid numIterationsExp. (Must be between 10 and 63)"),!1;const{fd:n,sections:Q}=await bI(A,"zkey",2),B=await st(n,Q);if("groth16"!=B.protocol)throw new Error("zkey file is not groth16");const r=await OI(B.q),o=await ft(n,r,Q),E=await LI(I,"zkey",1,10),a=await Ct(C,g),s=TI(64);s.update(o.csHash);for(let A=0;A<o.contributions.length;A++)ut(s,r,o.contributions[A]);const h={delta:{}};h.delta.prvKey=r.Fr.fromRng(a),h.delta.g1_s=r.G1.toAffine(r.G1.fromRng(a)),h.delta.g1_sx=r.G1.toAffine(r.G1.timesFr(h.delta.g1_s,h.delta.prvKey)),ct(s,r,h.delta.g1_s),ct(s,r,h.delta.g1_sx),h.transcript=s.digest(),h.delta.g2_sp=tg(r,h.transcript),h.delta.g2_spx=r.G2.toAffine(r.G2.timesFr(h.delta.g2_sp,h.delta.prvKey)),B.vk_delta_1=r.G1.timesFr(B.vk_delta_1,h.delta.prvKey),B.vk_delta_2=r.G2.timesFr(B.vk_delta_2,h.delta.prvKey),h.deltaAfter=B.vk_delta_1,h.type=1,h.numIterationsExp=g,h.beaconHash=C,t&&(h.name=t),o.contributions.push(h),await Bt(E,B),await YI(n,Q,E,3),await YI(n,Q,E,4),await YI(n,Q,E,5),await YI(n,Q,E,6),await YI(n,Q,E,7);const f=r.Fr.inv(h.delta.prvKey);await Dg(n,Q,E,8,r,"G1",f,r.Fr.e(1),"L Section",e),await Dg(n,Q,E,9,r,"G1",f,r.Fr.e(1),"H Section",e),await Dt(E,r,o),await n.close(),await E.close();const w=TI(64);ut(w,r,h);const D=w.digest();return e&&e.info(It(D,"Contribution Hash: ")),D},exportJson:async function(A){return await async function(A,I){const{fd:t,sections:i}=await bI(A,"zkey",1),g=await st(t,i,"groth16"),e=new dA(g.r),C=aI.mod(aI.shl(1,8*g.n8r),g.r),n=e.inv(C),Q=e.mul(n,n);let B=await OI(g.q);await JI(t,i,3),g.IC=[];for(let A=0;A<=g.nPublic;A++){const A=await Et(t,B,I);g.IC.push(A)}await SI(t),await JI(t,i,4);const r=await t.readULE32();g.ccoefs=[];for(let A=0;A<r;A++){const A=await t.readULE32(),I=await t.readULE32(),i=await t.readULE32(),e=await o();g.ccoefs.push({matrix:A,constraint:I,signal:i,value:e})}await SI(t),await JI(t,i,5),g.A=[];for(let A=0;A<g.nVars;A++){const i=await Et(t,B,I);g.A[A]=i}await SI(t),await JI(t,i,6),g.B1=[];for(let A=0;A<g.nVars;A++){const i=await Et(t,B,I);g.B1[A]=i}await SI(t),await JI(t,i,7),g.B2=[];for(let A=0;A<g.nVars;A++){const i=await at(t,B,I);g.B2[A]=i}await SI(t),await JI(t,i,8),g.C=[];for(let A=g.nPublic+1;A<g.nVars;A++){const i=await Et(t,B,I);g.C[A]=i}await SI(t),await JI(t,i,9),g.hExps=[];for(let A=0;A<g.domainSize;A++){const A=await Et(t,B,I);g.hExps.push(A)}return await SI(t),await t.close(),g;async function o(){const A=await RI(t,g.n8r);return e.mul(A,Q)}}(A,!0)},bellmanContribute:async function(A,I,t,i,g){await TI.ready();const e=await et(i),C=A.Fr.fromRng(e),n=A.Fr.inv(C),Q=2*A.G1.F.n8,B=2*A.G2.F.n8,r=await UI(I),o=await HI(t);await G(Q),await G(Q),await G(B),await G(B);const E=await H(),a=A.G1.timesFr(E,C);await b(a);const s=await U(),h=A.G2.timesFr(s,C);await L(h);const f=await r.readUBE32();await o.writeUBE32(f),await G(f*Q);const w=await r.readUBE32();await o.writeUBE32(w),await cg(r,o,null,A,"G1",w,n,A.Fr.e(1),"UNCOMPRESSED","H",g);const D=await r.readUBE32();await o.writeUBE32(D),await cg(r,o,null,A,"G1",D,n,A.Fr.e(1),"UNCOMPRESSED","L",g);const c=await r.readUBE32();await o.writeUBE32(c),await G(c*Q);const u=await r.readUBE32();await o.writeUBE32(u),await G(u*Q);const l=await r.readUBE32();await o.writeUBE32(l),await G(l*B);const y=TI(64),p={};p.csHash=await r.read(64),y.update(p.csHash);const F=await r.readUBE32();p.contributions=[];for(let I=0;I<F;I++){const I={delta:{}};I.deltaAfter=await H(),I.delta.g1_s=await H(),I.delta.g1_sx=await H(),I.delta.g2_spx=await U(),I.transcript=await r.read(64),p.contributions.push(I),ut(y,A,I)}const M={delta:{}};M.delta.prvKey=C,M.delta.g1_s=A.G1.toAffine(A.G1.fromRng(e)),M.delta.g1_sx=A.G1.toAffine(A.G1.timesFr(M.delta.g1_s,C)),ct(y,A,M.delta.g1_s),ct(y,A,M.delta.g1_sx),M.transcript=y.digest(),M.delta.g2_sp=tg(A,M.transcript),M.delta.g2_spx=A.G2.toAffine(A.G2.timesFr(M.delta.g2_sp,C)),M.deltaAfter=a,M.type=0,p.contributions.push(M),await o.write(p.csHash),await o.writeUBE32(p.contributions.length);for(let A=0;A<p.contributions.length;A++){const I=p.contributions[A];await b(I.deltaAfter),await b(I.delta.g1_s),await b(I.delta.g1_sx),await L(I.delta.g2_spx),await o.write(I.transcript)}const m=TI(64);ut(m,A,M);const d=m.digest();return g&&g.info(It(d,"Contribution Hash: ")),await o.close(),await r.close(),d;async function G(A){const I=2*r.pageSize;for(let t=0;t<A;t+=I){const i=Math.min(A-t,I),g=await r.read(i);await o.write(g)}}async function H(){const I=await r.read(2*A.G1.F.n8);return A.G1.fromRprUncompressed(I,0)}async function U(){const I=await r.read(2*A.G2.F.n8);return A.G2.fromRprUncompressed(I,0)}async function b(I){const t=new Uint8Array(Q);A.G1.toRprUncompressed(t,0,I),await o.write(t)}async function L(I){const t=new Uint8Array(B);A.G2.toRprUncompressed(t,0,I),await o.write(t)}},exportVerificationKey:SC,exportSolidityVerifier:async function(A,I,t){const i=await SC(A);let g=I[i.protocol];return vC.render(g,i)}});
|
|
/**
|
|
* [js-sha3]{@link https://github.com/emn178/js-sha3}
|
|
*
|
|
* @version 0.8.0
|
|
* @author Chen, Yi-Cyuan [emn178@gmail.com]
|
|
* @copyright Chen, Yi-Cyuan 2015-2018
|
|
* @license MIT
|
|
*/
|
|
var YC=r((function(A){!function(){var I="input is invalid type",t="object"==typeof window,i=t?window:{};i.JS_SHA3_NO_WINDOW&&(t=!1);var g=!t&&"object"==typeof self;!i.JS_SHA3_NO_NODE_JS&&"object"==typeof process&&process.versions&&process.versions.node?i=B:g&&(i=self);var e=!i.JS_SHA3_NO_COMMON_JS&&A.exports,C=!i.JS_SHA3_NO_ARRAY_BUFFER&&"undefined"!=typeof ArrayBuffer,n="0123456789abcdef".split(""),Q=[4,1024,262144,67108864],r=[0,8,16,24],o=[1,0,32898,0,32906,2147483648,2147516416,2147483648,32907,0,2147483649,0,2147516545,2147483648,32777,2147483648,138,0,136,0,2147516425,0,2147483658,0,2147516555,0,139,2147483648,32905,2147483648,32771,2147483648,32770,2147483648,128,2147483648,32778,0,2147483658,2147483648,2147516545,2147483648,32896,2147483648,2147483649,0,2147516424,2147483648],E=[224,256,384,512],a=[128,256],s=["hex","buffer","arrayBuffer","array","digest"],h={128:168,256:136};!i.JS_SHA3_NO_NODE_JS&&Array.isArray||(Array.isArray=function(A){return"[object Array]"===Object.prototype.toString.call(A)}),!C||!i.JS_SHA3_NO_ARRAY_BUFFER_IS_VIEW&&ArrayBuffer.isView||(ArrayBuffer.isView=function(A){return"object"==typeof A&&A.buffer&&A.buffer.constructor===ArrayBuffer});for(var f=function(A,I,t){return function(i){return new b(A,I,A).update(i)[t]()}},w=function(A,I,t){return function(i,g){return new b(A,I,g).update(i)[t]()}},D=function(A,I,t){return function(I,i,g,e){return p["cshake"+A].update(I,i,g,e)[t]()}},c=function(A,I,t){return function(I,i,g,e){return p["kmac"+A].update(I,i,g,e)[t]()}},u=function(A,I,t,i){for(var g=0;g<s.length;++g){var e=s[g];A[e]=I(t,i,e)}return A},l=function(A,I){var t=f(A,I,"hex");return t.create=function(){return new b(A,I,A)},t.update=function(A){return t.create().update(A)},u(t,f,A,I)},y=[{name:"keccak",padding:[1,256,65536,16777216],bits:E,createMethod:l},{name:"sha3",padding:[6,1536,393216,100663296],bits:E,createMethod:l},{name:"shake",padding:[31,7936,2031616,520093696],bits:a,createMethod:function(A,I){var t=w(A,I,"hex");return t.create=function(t){return new b(A,I,t)},t.update=function(A,I){return t.create(I).update(A)},u(t,w,A,I)}},{name:"cshake",padding:Q,bits:a,createMethod:function(A,I){var t=h[A],i=D(A,0,"hex");return i.create=function(i,g,e){return g||e?new b(A,I,i).bytepad([g,e],t):p["shake"+A].create(i)},i.update=function(A,I,t,g){return i.create(I,t,g).update(A)},u(i,D,A,I)}},{name:"kmac",padding:Q,bits:a,createMethod:function(A,I){var t=h[A],i=c(A,0,"hex");return i.create=function(i,g,e){return new L(A,I,g).bytepad(["KMAC",e],t).bytepad([i],t)},i.update=function(A,I,t,g){return i.create(A,t,g).update(I)},u(i,c,A,I)}}],p={},F=[],M=0;M<y.length;++M)for(var m=y[M],d=m.bits,G=0;G<d.length;++G){var H=m.name+"_"+d[G];if(F.push(H),p[H]=m.createMethod(d[G],m.padding),"sha3"!==m.name){var U=m.name+d[G];F.push(U),p[U]=p[H]}}function b(A,I,t){this.blocks=[],this.s=[],this.padding=I,this.outputBits=t,this.reset=!0,this.finalized=!1,this.block=0,this.start=0,this.blockCount=1600-(A<<1)>>5,this.byteCount=this.blockCount<<2,this.outputBlocks=t>>5,this.extraBytes=(31&t)>>3;for(var i=0;i<50;++i)this.s[i]=0}function L(A,I,t){b.call(this,A,I,t)}b.prototype.update=function(A){if(this.finalized)throw new Error("finalize already called");var t,i=typeof A;if("string"!==i){if("object"!==i)throw new Error(I);if(null===A)throw new Error(I);if(C&&A.constructor===ArrayBuffer)A=new Uint8Array(A);else if(!(Array.isArray(A)||C&&ArrayBuffer.isView(A)))throw new Error(I);t=!0}for(var g,e,n=this.blocks,Q=this.byteCount,B=A.length,o=this.blockCount,E=0,a=this.s;E<B;){if(this.reset)for(this.reset=!1,n[0]=this.block,g=1;g<o+1;++g)n[g]=0;if(t)for(g=this.start;E<B&&g<Q;++E)n[g>>2]|=A[E]<<r[3&g++];else for(g=this.start;E<B&&g<Q;++E)(e=A.charCodeAt(E))<128?n[g>>2]|=e<<r[3&g++]:e<2048?(n[g>>2]|=(192|e>>6)<<r[3&g++],n[g>>2]|=(128|63&e)<<r[3&g++]):e<55296||e>=57344?(n[g>>2]|=(224|e>>12)<<r[3&g++],n[g>>2]|=(128|e>>6&63)<<r[3&g++],n[g>>2]|=(128|63&e)<<r[3&g++]):(e=65536+((1023&e)<<10|1023&A.charCodeAt(++E)),n[g>>2]|=(240|e>>18)<<r[3&g++],n[g>>2]|=(128|e>>12&63)<<r[3&g++],n[g>>2]|=(128|e>>6&63)<<r[3&g++],n[g>>2]|=(128|63&e)<<r[3&g++]);if(this.lastByteIndex=g,g>=Q){for(this.start=g-Q,this.block=n[o],g=0;g<o;++g)a[g]^=n[g];k(a),this.reset=!0}else this.start=g}return this},b.prototype.encode=function(A,I){var t=255&A,i=1,g=[t];for(t=255&(A>>=8);t>0;)g.unshift(t),t=255&(A>>=8),++i;return I?g.push(i):g.unshift(i),this.update(g),g.length},b.prototype.encodeString=function(A){var t,i=typeof A;if("string"!==i){if("object"!==i)throw new Error(I);if(null===A)throw new Error(I);if(C&&A.constructor===ArrayBuffer)A=new Uint8Array(A);else if(!(Array.isArray(A)||C&&ArrayBuffer.isView(A)))throw new Error(I);t=!0}var g=0,e=A.length;if(t)g=e;else for(var n=0;n<A.length;++n){var Q=A.charCodeAt(n);Q<128?g+=1:Q<2048?g+=2:Q<55296||Q>=57344?g+=3:(Q=65536+((1023&Q)<<10|1023&A.charCodeAt(++n)),g+=4)}return g+=this.encode(8*g),this.update(A),g},b.prototype.bytepad=function(A,I){for(var t=this.encode(I),i=0;i<A.length;++i)t+=this.encodeString(A[i]);var g=I-t%I,e=[];return e.length=g,this.update(e),this},b.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var A=this.blocks,I=this.lastByteIndex,t=this.blockCount,i=this.s;if(A[I>>2]|=this.padding[3&I],this.lastByteIndex===this.byteCount)for(A[0]=A[t],I=1;I<t+1;++I)A[I]=0;for(A[t-1]|=2147483648,I=0;I<t;++I)i[I]^=A[I];k(i)}},b.prototype.toString=b.prototype.hex=function(){this.finalize();for(var A,I=this.blockCount,t=this.s,i=this.outputBlocks,g=this.extraBytes,e=0,C=0,Q="";C<i;){for(e=0;e<I&&C<i;++e,++C)A=t[e],Q+=n[A>>4&15]+n[15&A]+n[A>>12&15]+n[A>>8&15]+n[A>>20&15]+n[A>>16&15]+n[A>>28&15]+n[A>>24&15];C%I==0&&(k(t),e=0)}return g&&(A=t[e],Q+=n[A>>4&15]+n[15&A],g>1&&(Q+=n[A>>12&15]+n[A>>8&15]),g>2&&(Q+=n[A>>20&15]+n[A>>16&15])),Q},b.prototype.arrayBuffer=function(){this.finalize();var A,I=this.blockCount,t=this.s,i=this.outputBlocks,g=this.extraBytes,e=0,C=0,n=this.outputBits>>3;A=g?new ArrayBuffer(i+1<<2):new ArrayBuffer(n);for(var Q=new Uint32Array(A);C<i;){for(e=0;e<I&&C<i;++e,++C)Q[C]=t[e];C%I==0&&k(t)}return g&&(Q[e]=t[e],A=A.slice(0,n)),A},b.prototype.buffer=b.prototype.arrayBuffer,b.prototype.digest=b.prototype.array=function(){this.finalize();for(var A,I,t=this.blockCount,i=this.s,g=this.outputBlocks,e=this.extraBytes,C=0,n=0,Q=[];n<g;){for(C=0;C<t&&n<g;++C,++n)A=n<<2,I=i[C],Q[A]=255&I,Q[A+1]=I>>8&255,Q[A+2]=I>>16&255,Q[A+3]=I>>24&255;n%t==0&&k(i)}return e&&(A=n<<2,I=i[C],Q[A]=255&I,e>1&&(Q[A+1]=I>>8&255),e>2&&(Q[A+2]=I>>16&255)),Q},L.prototype=new b,L.prototype.finalize=function(){return this.encode(this.outputBits,!0),b.prototype.finalize.call(this)};var k=function(A){var I,t,i,g,e,C,n,Q,B,r,E,a,s,h,f,w,D,c,u,l,y,p,F,M,m,d,G,H,U,b,L,k,N,J,S,v,R,Y,q,x,P,X,O,Z,V,K,j,z,W,T,_,$,AA,IA,tA,iA,gA,eA,CA,nA,QA,BA,rA;for(i=0;i<48;i+=2)g=A[0]^A[10]^A[20]^A[30]^A[40],e=A[1]^A[11]^A[21]^A[31]^A[41],C=A[2]^A[12]^A[22]^A[32]^A[42],n=A[3]^A[13]^A[23]^A[33]^A[43],Q=A[4]^A[14]^A[24]^A[34]^A[44],B=A[5]^A[15]^A[25]^A[35]^A[45],r=A[6]^A[16]^A[26]^A[36]^A[46],E=A[7]^A[17]^A[27]^A[37]^A[47],I=(a=A[8]^A[18]^A[28]^A[38]^A[48])^(C<<1|n>>>31),t=(s=A[9]^A[19]^A[29]^A[39]^A[49])^(n<<1|C>>>31),A[0]^=I,A[1]^=t,A[10]^=I,A[11]^=t,A[20]^=I,A[21]^=t,A[30]^=I,A[31]^=t,A[40]^=I,A[41]^=t,I=g^(Q<<1|B>>>31),t=e^(B<<1|Q>>>31),A[2]^=I,A[3]^=t,A[12]^=I,A[13]^=t,A[22]^=I,A[23]^=t,A[32]^=I,A[33]^=t,A[42]^=I,A[43]^=t,I=C^(r<<1|E>>>31),t=n^(E<<1|r>>>31),A[4]^=I,A[5]^=t,A[14]^=I,A[15]^=t,A[24]^=I,A[25]^=t,A[34]^=I,A[35]^=t,A[44]^=I,A[45]^=t,I=Q^(a<<1|s>>>31),t=B^(s<<1|a>>>31),A[6]^=I,A[7]^=t,A[16]^=I,A[17]^=t,A[26]^=I,A[27]^=t,A[36]^=I,A[37]^=t,A[46]^=I,A[47]^=t,I=r^(g<<1|e>>>31),t=E^(e<<1|g>>>31),A[8]^=I,A[9]^=t,A[18]^=I,A[19]^=t,A[28]^=I,A[29]^=t,A[38]^=I,A[39]^=t,A[48]^=I,A[49]^=t,h=A[0],f=A[1],K=A[11]<<4|A[10]>>>28,j=A[10]<<4|A[11]>>>28,H=A[20]<<3|A[21]>>>29,U=A[21]<<3|A[20]>>>29,nA=A[31]<<9|A[30]>>>23,QA=A[30]<<9|A[31]>>>23,X=A[40]<<18|A[41]>>>14,O=A[41]<<18|A[40]>>>14,J=A[2]<<1|A[3]>>>31,S=A[3]<<1|A[2]>>>31,w=A[13]<<12|A[12]>>>20,D=A[12]<<12|A[13]>>>20,z=A[22]<<10|A[23]>>>22,W=A[23]<<10|A[22]>>>22,b=A[33]<<13|A[32]>>>19,L=A[32]<<13|A[33]>>>19,BA=A[42]<<2|A[43]>>>30,rA=A[43]<<2|A[42]>>>30,IA=A[5]<<30|A[4]>>>2,tA=A[4]<<30|A[5]>>>2,v=A[14]<<6|A[15]>>>26,R=A[15]<<6|A[14]>>>26,c=A[25]<<11|A[24]>>>21,u=A[24]<<11|A[25]>>>21,T=A[34]<<15|A[35]>>>17,_=A[35]<<15|A[34]>>>17,k=A[45]<<29|A[44]>>>3,N=A[44]<<29|A[45]>>>3,M=A[6]<<28|A[7]>>>4,m=A[7]<<28|A[6]>>>4,iA=A[17]<<23|A[16]>>>9,gA=A[16]<<23|A[17]>>>9,Y=A[26]<<25|A[27]>>>7,q=A[27]<<25|A[26]>>>7,l=A[36]<<21|A[37]>>>11,y=A[37]<<21|A[36]>>>11,$=A[47]<<24|A[46]>>>8,AA=A[46]<<24|A[47]>>>8,Z=A[8]<<27|A[9]>>>5,V=A[9]<<27|A[8]>>>5,d=A[18]<<20|A[19]>>>12,G=A[19]<<20|A[18]>>>12,eA=A[29]<<7|A[28]>>>25,CA=A[28]<<7|A[29]>>>25,x=A[38]<<8|A[39]>>>24,P=A[39]<<8|A[38]>>>24,p=A[48]<<14|A[49]>>>18,F=A[49]<<14|A[48]>>>18,A[0]=h^~w&c,A[1]=f^~D&u,A[10]=M^~d&H,A[11]=m^~G&U,A[20]=J^~v&Y,A[21]=S^~R&q,A[30]=Z^~K&z,A[31]=V^~j&W,A[40]=IA^~iA&eA,A[41]=tA^~gA&CA,A[2]=w^~c&l,A[3]=D^~u&y,A[12]=d^~H&b,A[13]=G^~U&L,A[22]=v^~Y&x,A[23]=R^~q&P,A[32]=K^~z&T,A[33]=j^~W&_,A[42]=iA^~eA&nA,A[43]=gA^~CA&QA,A[4]=c^~l&p,A[5]=u^~y&F,A[14]=H^~b&k,A[15]=U^~L&N,A[24]=Y^~x&X,A[25]=q^~P&O,A[34]=z^~T&$,A[35]=W^~_&AA,A[44]=eA^~nA&BA,A[45]=CA^~QA&rA,A[6]=l^~p&h,A[7]=y^~F&f,A[16]=b^~k&M,A[17]=L^~N&m,A[26]=x^~X&J,A[27]=P^~O&S,A[36]=T^~$&Z,A[37]=_^~AA&V,A[46]=nA^~BA&IA,A[47]=QA^~rA&tA,A[8]=p^~h&w,A[9]=F^~f&D,A[18]=k^~M&d,A[19]=N^~m&G,A[28]=X^~J&v,A[29]=O^~S&R,A[38]=$^~Z&K,A[39]=AA^~V&j,A[48]=BA^~IA&iA,A[49]=rA^~tA&gA,A[0]^=o[i],A[1]^=o[i+1]};if(e)A.exports=p;else for(M=0;M<F.length;++M)i[F[M]]=p[F[M]]}()}));const{stringifyBigInts:qC}=sI,{keccak256:xC}=YC;async function PC(A,I,t){const{fd:i,sections:g}=await bI(I,"wtns",2),e=await lt(i,g),{fd:C,sections:n}=await bI(A,"zkey",2),Q=await st(C,n);if("plonk"!=Q.protocol)throw new Error("zkey file is not groth16");if(!aI.eq(Q.r,e.q))throw new Error("Curve of the witness does not match the curve of the proving key");if(e.nWitness!=Q.nVars-Q.nAdditions)throw new Error(`Invalid witness length. Circuit: ${Q.nVars}, witness: ${e.nWitness}, ${Q.nAdditions}`);const B=await OI(Q.q),r=B.Fr,o=B.G1,E=B.Fr.n8;t&&t.debug("Reading Wtns");const a=await qI(i,g,2);a.set(r.zero,0);const s=new VA(E*Q.nAdditions);let h,f,w,D,c,u,l,y,p,F,M,m,d,G;await async function(){const A=await qI(C,n,3),I=8+2*B.Fr.n8;for(let t=0;t<Q.nAdditions;t++){const i=v(A,t*I),g=v(A,t*I+4),e=A.slice(t*I+8,t*I+8+E),C=A.slice(t*I+8+E,t*I+8+2*E),n=R(i),Q=R(g),r=B.Fr.add(B.Fr.mul(e,n),B.Fr.mul(C,Q));s.set(r,E*t)}}();let H={};const U=new VA(Q.domainSize*E*4*3);let b=n[12][0].p+Q.domainSize*E;await C.readToBuffer(U,0,Q.domainSize*E*4,b),b+=Q.domainSize*E*5,await C.readToBuffer(U,Q.domainSize*E*4,Q.domainSize*E*4,b),b+=Q.domainSize*E*5,await C.readToBuffer(U,Q.domainSize*E*8,Q.domainSize*E*4,b);const L=new VA(Q.domainSize*E);await C.readToBuffer(L,0,Q.domainSize*E,n[12][0].p);const k=new VA(Q.domainSize*E);await C.readToBuffer(k,0,Q.domainSize*E,n[12][0].p+5*Q.domainSize*E);const N=await qI(C,n,14),J={};await async function(){J.b=[];for(let A=1;A<=9;A++)J.b[A]=B.Fr.random();[h,f,w]=await async function(){let A=new VA(Q.domainSize*E),I=new VA(Q.domainSize*E),t=new VA(Q.domainSize*E);const i=await qI(C,n,4),g=await qI(C,n,5),e=await qI(C,n,6);for(let C=0;C<Q.nConstrains;C++){const n=v(i,4*C);A.set(R(n),C*E);const Q=v(g,4*C);I.set(R(Q),C*E);const B=v(e,4*C);t.set(R(B),C*E)}return A=await r.batchToMontgomery(A),I=await r.batchToMontgomery(I),t=await r.batchToMontgomery(t),[A,I,t]}(),[p,c]=await X(h,[J.b[2],J.b[1]]),[F,u]=await X(f,[J.b[4],J.b[3]]),[M,l]=await X(w,[J.b[6],J.b[5]]),H.A=await P(p,"multiexp A"),H.B=await P(F,"multiexp B"),H.C=await P(M,"multiexp C")}(),await async function(){const A=new Uint8Array(2*o.F.n8*3);o.toRprUncompressed(A,0,H.A),o.toRprUncompressed(A,2*o.F.n8,H.B),o.toRprUncompressed(A,4*o.F.n8,H.C),J.beta=Y(A),t&&t.debug("beta: "+r.toString(J.beta));const I=new Uint8Array(E);r.toRprBE(I,0,J.beta),J.gamma=Y(I),t&&t.debug("gamma: "+r.toString(J.gamma));let i=new VA(r.n8*Q.domainSize),g=new VA(r.n8*Q.domainSize);i.set(r.one,0),g.set(r.one,0);let e=r.one;for(let A=0;A<Q.domainSize;A++){let I=h.slice(A*E,(A+1)*E);I=r.add(I,r.mul(J.beta,e)),I=r.add(I,J.gamma);let t=f.slice(A*E,(A+1)*E);t=r.add(t,r.mul(Q.k1,r.mul(J.beta,e))),t=r.add(t,J.gamma);let C=w.slice(A*E,(A+1)*E);C=r.add(C,r.mul(Q.k2,r.mul(J.beta,e))),C=r.add(C,J.gamma);const n=r.mul(I,r.mul(t,C));let B=h.slice(A*E,(A+1)*E);B=r.add(B,r.mul(U.slice(A*E*4,A*E*4+E),J.beta)),B=r.add(B,J.gamma);let o=f.slice(A*E,(A+1)*E);o=r.add(o,r.mul(U.slice(4*(Q.domainSize+A)*E,4*(Q.domainSize+A)*E+E),J.beta)),o=r.add(o,J.gamma);let a=w.slice(A*E,(A+1)*E);a=r.add(a,r.mul(U.slice(4*(2*Q.domainSize+A)*E,4*(2*Q.domainSize+A)*E+E),J.beta)),a=r.add(a,J.gamma);const s=r.mul(B,r.mul(o,a));i.set(r.mul(i.slice(A*E,(A+1)*E),n),(A+1)%Q.domainSize*E),g.set(r.mul(g.slice(A*E,(A+1)*E),s),(A+1)%Q.domainSize*E),e=r.mul(e,r.w[Q.power])}g=await r.batchInverse(g);for(let A=0;A<Q.domainSize;A++)i.set(r.mul(i.slice(A*E,(A+1)*E),g.slice(A*E,(A+1)*E)),A*E);if(!r.eq(i.slice(0,E),r.one))throw new Error("Copy constraints does not match");D=i,[m,y]=await X(D,[J.b[9],J.b[8],J.b[7]]),H.Z=await P(m,"multiexp Z")}(),await async function(){t&&t.debug("phse3: Reading QM4");const A=new VA(4*Q.domainSize*E);await C.readToBuffer(A,0,Q.domainSize*E*4,n[7][0].p+Q.domainSize*E),t&&t.debug("phse3: Reading QL4");const I=new VA(4*Q.domainSize*E);await C.readToBuffer(I,0,Q.domainSize*E*4,n[8][0].p+Q.domainSize*E),t&&t.debug("phse3: Reading QR4");const i=new VA(4*Q.domainSize*E);await C.readToBuffer(i,0,Q.domainSize*E*4,n[9][0].p+Q.domainSize*E),t&&t.debug("phse3: Reading QO4");const g=new VA(4*Q.domainSize*E);await C.readToBuffer(g,0,Q.domainSize*E*4,n[10][0].p+Q.domainSize*E),t&&t.debug("phse3: Reading QC4");const e=new VA(4*Q.domainSize*E);await C.readToBuffer(e,0,Q.domainSize*E*4,n[11][0].p+Q.domainSize*E);const B=await qI(C,n,13),a=new Uint8Array(2*o.F.n8);o.toRprUncompressed(a,0,H.Z),J.alpha=Y(a),t&&t.debug("alpha: "+r.toString(J.alpha));const s=[r.zero,r.add(r.e(-1),r.w[2]),r.e(-2),r.sub(r.e(-1),r.w[2])],f=[r.zero,r.add(r.zero,r.mul(r.e(-2),r.w[2])),r.e(4),r.sub(r.zero,r.mul(r.e(-2),r.w[2]))],w=[r.zero,r.add(r.e(2),r.mul(r.e(2),r.w[2])),r.e(-8),r.sub(r.e(2),r.mul(r.e(2),r.w[2]))],D=new VA(4*Q.domainSize*E),p=new VA(4*Q.domainSize*E);let F=r.one;for(let C=0;C<4*Q.domainSize;C++){C%4096==0&&t&&t.debug(`calculating t ${C}/${4*Q.domainSize}`);const n=c.slice(C*E,C*E+E),o=u.slice(C*E,C*E+E),a=l.slice(C*E,C*E+E),s=y.slice(C*E,C*E+E),f=y.slice((C+4*Q.domainSize+4)%(4*Q.domainSize)*E,(C+4*Q.domainSize+4)%(4*Q.domainSize)*E+E),w=A.slice(C*E,C*E+E),M=I.slice(C*E,C*E+E),m=i.slice(C*E,C*E+E),d=g.slice(C*E,C*E+E),H=e.slice(C*E,C*E+E),L=U.slice(C*E,C*E+E),k=U.slice((C+4*Q.domainSize)*E,(C+4*Q.domainSize)*E+E),N=U.slice((C+8*Q.domainSize)*E,(C+8*Q.domainSize)*E+E),S=r.add(J.b[2],r.mul(J.b[1],F)),v=r.add(J.b[4],r.mul(J.b[3],F)),R=r.add(J.b[6],r.mul(J.b[5],F)),Y=r.square(F),q=r.add(r.add(r.mul(J.b[7],Y),r.mul(J.b[8],F)),J.b[9]),x=r.mul(F,r.w[Q.power]),P=r.square(x),X=r.add(r.add(r.mul(J.b[7],P),r.mul(J.b[8],x)),J.b[9]);let O=r.zero;for(let A=0;A<Q.nPublic;A++)O=r.sub(O,r.mul(B.slice((5*A*Q.domainSize+Q.domainSize+C)*E,(5*A*Q.domainSize+Q.domainSize+C+1)*E),h.slice(A*E,(A+1)*E)));let[Z,V]=G(n,o,S,v,C%4);Z=r.mul(Z,w),V=r.mul(V,w),Z=r.add(Z,r.mul(n,M)),V=r.add(V,r.mul(S,M)),Z=r.add(Z,r.mul(o,m)),V=r.add(V,r.mul(v,m)),Z=r.add(Z,r.mul(a,d)),V=r.add(V,r.mul(R,d)),Z=r.add(Z,O),Z=r.add(Z,H);const K=r.mul(J.beta,F);let j=n;j=r.add(j,K),j=r.add(j,J.gamma);let z=o;z=r.add(z,r.mul(K,Q.k1)),z=r.add(z,J.gamma);let W=a;W=r.add(W,r.mul(K,Q.k2)),W=r.add(W,J.gamma);let T=s,[_,$]=b(j,z,W,T,S,v,R,q,C%4);_=r.mul(_,J.alpha),$=r.mul($,J.alpha);let AA=n;AA=r.add(AA,r.mul(J.beta,L)),AA=r.add(AA,J.gamma);let IA=o;IA=r.add(IA,r.mul(J.beta,k)),IA=r.add(IA,J.gamma);let tA=a;tA=r.add(tA,r.mul(J.beta,N)),tA=r.add(tA,J.gamma);let iA=f,[gA,eA]=b(AA,IA,tA,iA,S,v,R,X,C%4);gA=r.mul(gA,J.alpha),eA=r.mul(eA,J.alpha);let CA=r.sub(s,r.one);CA=r.mul(CA,B.slice((Q.domainSize+C)*E,(Q.domainSize+C+1)*E)),CA=r.mul(CA,r.mul(J.alpha,J.alpha));let nA=r.mul(q,B.slice((Q.domainSize+C)*E,(Q.domainSize+C+1)*E));nA=r.mul(nA,r.mul(J.alpha,J.alpha));let QA=r.add(r.sub(r.add(Z,_),gA),CA),BA=r.add(r.sub(r.add(V,$),eA),nA);D.set(QA,C*E),p.set(BA,C*E),F=r.mul(F,r.w[Q.power+2])}t&&t.debug("ifft T");let M=await r.ifft(D);t&&t.debug("dividing T/Z");for(let A=0;A<Q.domainSize;A++)M.set(r.neg(M.slice(A*E,A*E+E)),A*E);for(let A=Q.domainSize;A<4*Q.domainSize;A++){const I=r.sub(M.slice((A-Q.domainSize)*E,(A-Q.domainSize)*E+E),M.slice(A*E,A*E+E));if(M.set(I,A*E),A>3*Q.domainSize-4&&!r.isZero(I))throw new Error("T Polynomial is not divisible")}t&&t.debug("ifft Tz");const m=await r.ifft(p);for(let A=0;A<4*Q.domainSize;A++){const I=m.slice(A*E,(A+1)*E);if(A>3*Q.domainSize+5){if(!r.isZero(I))throw new Error("Tz Polynomial is not well calculated")}else M.set(r.add(M.slice(A*E,(A+1)*E),I),A*E)}function G(A,I,t,i,g){let e,C;const n=r.mul(A,I),Q=r.mul(A,i),B=r.mul(t,I);e=n;let o=r.mul(t,i);return C=r.add(Q,B),g&&(C=r.add(C,r.mul(s[g],o))),[e,C]}function b(A,I,t,i,g,e,C,n,Q){let B,o;const E=r.mul(A,I),a=r.mul(A,e),h=r.mul(g,I),D=r.mul(g,e),c=r.mul(t,i),u=r.mul(t,n),l=r.mul(C,i),y=r.mul(C,n);B=r.mul(E,c);let p=r.mul(h,c);p=r.add(p,r.mul(a,c)),p=r.add(p,r.mul(E,l)),p=r.add(p,r.mul(E,u));let F=r.mul(D,c);F=r.add(F,r.mul(h,l)),F=r.add(F,r.mul(h,u)),F=r.add(F,r.mul(a,l)),F=r.add(F,r.mul(a,u)),F=r.add(F,r.mul(E,y));let M=r.mul(a,y);M=r.add(M,r.mul(h,y)),M=r.add(M,r.mul(D,u)),M=r.add(M,r.mul(D,l));let m=r.mul(D,y);return o=p,Q&&(o=r.add(o,r.mul(s[Q],F)),o=r.add(o,r.mul(f[Q],M)),o=r.add(o,r.mul(w[Q],m))),[B,o]}d=M.slice(0,(3*Q.domainSize+6)*E),H.T1=await P(M.slice(0,Q.domainSize*E),"multiexp T1"),H.T2=await P(M.slice(Q.domainSize*E,2*Q.domainSize*E),"multiexp T2"),H.T3=await P(M.slice(2*Q.domainSize*E,(3*Q.domainSize+6)*E),"multiexp T3")}(),await async function(){const A=new VA(Q.domainSize*E);await C.readToBuffer(A,0,Q.domainSize*E,n[7][0].p);const I=new VA(Q.domainSize*E);await C.readToBuffer(I,0,Q.domainSize*E,n[8][0].p);const i=new VA(Q.domainSize*E);await C.readToBuffer(i,0,Q.domainSize*E,n[9][0].p);const g=new VA(Q.domainSize*E);await C.readToBuffer(g,0,Q.domainSize*E,n[10][0].p);const e=new VA(Q.domainSize*E);await C.readToBuffer(e,0,Q.domainSize*E,n[11][0].p);const B=new VA(Q.domainSize*E);await C.readToBuffer(B,0,Q.domainSize*E,n[12][0].p+10*Q.domainSize*E);const a=new Uint8Array(2*o.F.n8*3);o.toRprUncompressed(a,0,H.T1),o.toRprUncompressed(a,2*o.F.n8,H.T2),o.toRprUncompressed(a,4*o.F.n8,H.T3),J.xi=Y(a),t&&t.debug("xi: "+r.toString(J.xi));H.eval_a=q(p,J.xi),H.eval_b=q(F,J.xi),H.eval_c=q(M,J.xi),H.eval_s1=q(L,J.xi),H.eval_s2=q(k,J.xi),H.eval_t=q(d,J.xi),H.eval_zw=q(m,r.mul(J.xi,r.w[Q.power]));const s=r.mul(H.eval_a,H.eval_b);let h=H.eval_a;const f=r.mul(J.beta,J.xi);h=r.add(h,f),h=r.add(h,J.gamma);let w=H.eval_b;w=r.add(w,r.mul(f,Q.k1)),w=r.add(w,J.gamma);let D=H.eval_c;D=r.add(D,r.mul(f,Q.k2)),D=r.add(D,J.gamma);const c=r.mul(r.mul(r.mul(h,w),D),J.alpha);let u=H.eval_a;u=r.add(u,r.mul(J.beta,H.eval_s1)),u=r.add(u,J.gamma);let l=H.eval_b;l=r.add(l,r.mul(J.beta,H.eval_s2)),l=r.add(l,J.gamma);let y=r.mul(u,l);y=r.mul(y,J.beta),y=r.mul(y,H.eval_zw),y=r.mul(y,J.alpha),J.xim=J.xi;for(let A=0;A<Q.power;A++)J.xim=r.mul(J.xim,J.xim);const U=r.div(r.sub(J.xim,r.one),r.mul(r.sub(J.xi,r.one),r.e(Q.domainSize))),b=r.mul(U,r.mul(J.alpha,J.alpha)),N=y,S=r.add(c,b);G=new VA((Q.domainSize+3)*E);for(let t=0;t<Q.domainSize+3;t++){let C=r.mul(S,m.slice(t*E,(t+1)*E));t<Q.domainSize&&(C=r.add(C,r.mul(s,A.slice(t*E,(t+1)*E))),C=r.add(C,r.mul(H.eval_a,I.slice(t*E,(t+1)*E))),C=r.add(C,r.mul(H.eval_b,i.slice(t*E,(t+1)*E))),C=r.add(C,r.mul(H.eval_c,g.slice(t*E,(t+1)*E))),C=r.add(C,e.slice(t*E,(t+1)*E)),C=r.sub(C,r.mul(N,B.slice(t*E,(t+1)*E)))),G.set(C,t*E)}H.eval_r=q(G,J.xi)}(),await async function(){const A=new Uint8Array(7*E);r.toRprBE(A,0,H.eval_a),r.toRprBE(A,E,H.eval_b),r.toRprBE(A,2*E,H.eval_c),r.toRprBE(A,3*E,H.eval_s1),r.toRprBE(A,4*E,H.eval_s2),r.toRprBE(A,5*E,H.eval_zw),r.toRprBE(A,6*E,H.eval_r),J.v=[],J.v[1]=Y(A),t&&t.debug("v: "+r.toString(J.v[1]));for(let A=2;A<=6;A++)J.v[A]=r.mul(J.v[A-1],J.v[1]);let I=new VA((Q.domainSize+6)*E);const i=r.mul(J.xim,J.xim);for(let A=0;A<Q.domainSize+6;A++){let t=r.zero;t=r.add(t,r.mul(i,d.slice((2*Q.domainSize+A)*E,(2*Q.domainSize+A+1)*E))),A<Q.domainSize+3&&(t=r.add(t,r.mul(J.v[1],G.slice(A*E,(A+1)*E)))),A<Q.domainSize+2&&(t=r.add(t,r.mul(J.v[2],p.slice(A*E,(A+1)*E))),t=r.add(t,r.mul(J.v[3],F.slice(A*E,(A+1)*E))),t=r.add(t,r.mul(J.v[4],M.slice(A*E,(A+1)*E)))),A<Q.domainSize&&(t=r.add(t,d.slice(A*E,(A+1)*E)),t=r.add(t,r.mul(J.xim,d.slice((Q.domainSize+A)*E,(Q.domainSize+A+1)*E))),t=r.add(t,r.mul(J.v[5],L.slice(A*E,(A+1)*E))),t=r.add(t,r.mul(J.v[6],k.slice(A*E,(A+1)*E)))),I.set(t,A*E)}let g=I.slice(0,E);g=r.sub(g,H.eval_t),g=r.sub(g,r.mul(J.v[1],H.eval_r)),g=r.sub(g,r.mul(J.v[2],H.eval_a)),g=r.sub(g,r.mul(J.v[3],H.eval_b)),g=r.sub(g,r.mul(J.v[4],H.eval_c)),g=r.sub(g,r.mul(J.v[5],H.eval_s1)),g=r.sub(g,r.mul(J.v[6],H.eval_s2)),I.set(g,0),I=x(I,J.xi),H.Wxi=await P(I,"multiexp Wxi");let e=new VA((Q.domainSize+3)*E);for(let A=0;A<Q.domainSize+3;A++){const I=m.slice(A*E,(A+1)*E);e.set(I,A*E)}g=e.slice(0,E),g=r.sub(g,H.eval_zw),e.set(g,0),e=x(e,r.mul(J.xi,r.w[Q.power])),H.Wxiw=await P(e,"multiexp Wxiw")}(),H.protocol="plonk",H.curve=B.name,await C.close(),await i.close();let S=[];for(let A=1;A<=Q.nPublic;A++){const I=a.slice(A*r.n8,A*r.n8+r.n8);S.push(aI.fromRprLE(I))}return H.A=o.toObject(H.A),H.B=o.toObject(H.B),H.C=o.toObject(H.C),H.Z=o.toObject(H.Z),H.T1=o.toObject(H.T1),H.T2=o.toObject(H.T2),H.T3=o.toObject(H.T3),H.eval_a=r.toObject(H.eval_a),H.eval_b=r.toObject(H.eval_b),H.eval_c=r.toObject(H.eval_c),H.eval_s1=r.toObject(H.eval_s1),H.eval_s2=r.toObject(H.eval_s2),H.eval_zw=r.toObject(H.eval_zw),H.eval_t=r.toObject(H.eval_t),H.eval_r=r.toObject(H.eval_r),H.Wxi=o.toObject(H.Wxi),H.Wxiw=o.toObject(H.Wxiw),delete H.eval_t,H=qC(H),S=qC(S),{proof:H,publicSignals:S};function v(A,I){const t=A.slice(I,I+4);return new DataView(t.buffer,t.byteOffset,t.byteLength).getUint32(0,!0)}function R(A){return A<Q.nVars-Q.nAdditions?a.slice(A*E,A*E+E):A<Q.nVars?s.slice((A-(Q.nVars-Q.nAdditions))*E,(A-(Q.nVars-Q.nAdditions))*E+E):B.Fr.zero}function Y(A){const I=aI.fromRprBE(new Uint8Array(xC.arrayBuffer(A)));return r.e(I)}function q(A,I){const t=A.byteLength/E;if(0==t)return r.zero;let i=A.slice((t-1)*E,t*E);for(let g=t-2;g>=0;g--)i=r.add(r.mul(i,I),A.slice(g*E,(g+1)*E));return i}function x(A,I){const t=A.byteLength/E,i=new VA(t*E);i.set(r.zero,(t-1)*E),i.set(A.slice((t-1)*E,t*E),(t-2)*E);for(let g=t-3;g>=0;g--)i.set(r.add(A.slice((g+1)*E,(g+2)*E),r.mul(I,i.slice((g+1)*E,(g+2)*E))),g*E);if(!r.eq(A.slice(0,E),r.mul(r.neg(I),i.slice(0,E))))throw new Error("Polinomial does not divide");return i}async function P(A,I){const i=A.byteLength/E,g=N.slice(0,i*B.G1.F.n8*2),e=await B.Fr.batchFromMontgomery(A);let C=await B.G1.multiExpAffine(g,e,t,I);return C=B.G1.toAffine(C),C}async function X(A,I){I=I||[];let t=await r.ifft(A);const i=new VA(E*Q.domainSize*4);i.set(t,0);const g=new VA(E*(Q.domainSize+I.length));g.set(t,0);for(let A=0;A<I.length;A++)g.set(r.add(g.slice((Q.domainSize+A)*E,(Q.domainSize+A+1)*E),I[A]),(Q.domainSize+A)*E),g.set(r.sub(g.slice(A*E,(A+1)*E),I[A]),A*E);return[g,await r.fft(i)]}}const{unstringifyBigInts:XC}=sI,{keccak256:OC}=YC;function ZC(A,I){const t=aI.fromRprBE(new Uint8Array(OC.arrayBuffer(I)));return A.Fr.e(t)}function VC(A){return("0"+A.toString(16)).slice(-2)}function KC(A){let I=A.toString(16);for(;I.length<64;)I="0"+I;return I=`"0x${I}"`,I}var jC=Object.freeze({__proto__:null,setup:async function(A,I,t,i){await TI.ready();const{fd:g,sections:e}=await bI(I,"ptau",1),{curve:C,power:n}=await ng(g,e),{fd:Q,sections:B}=await bI(A,"r1cs",1),r=await uC(Q,B,!1),o=2*C.G1.F.n8,E=C.G1,a=2*C.G2.F.n8,s=C.Fr,h=C.Fr.n8;i&&i.info("Reading r1cs");let f=await qI(Q,B,2);const w=new bC,D=new bC;let c=r.nVars;const u=r.nOutputs+r.nPubInputs;await async function(){let A=0;function I(){const I=f.slice(A,A+4);A+=4;return new DataView(I.buffer).getUint32(0,!0)}function t(){const I=s.fromRprLE(f.slice(A,A+C.Fr.n8));return A+=C.Fr.n8,I}function g(){const A=[],i={k:C.Fr.zero},g=I();for(let e=0;e<g;e++){const g=I(),e=t();0==g?i.k=e:A.push([g,e])}const n=e(A);return i.s=n[0],i.coef=n[1],i}function e(A){if(0==A.length)return[0,C.Fr.zero];if(1==A.length)return A[0];const I=A.slice(0,A.length>>1),t=A.slice(A.length>>1),i=e(I),g=e(t),n=i[0],Q=g[0],B=c++,r=C.Fr.zero,o=s.neg(i[1]),E=s.neg(g[1]),a=C.Fr.one,h=C.Fr.zero;return w.push([n,Q,B,r,o,E,a,h]),D.push([n,Q,i[1],g[1]]),[B,C.Fr.one]}for(let A=1;A<=u;A++){const I=A,t=0,i=0,g=C.Fr.zero,e=C.Fr.one,n=C.Fr.zero,Q=C.Fr.zero,B=C.Fr.zero;w.push([I,t,i,g,e,n,Q,B])}for(let A=0;A<r.nConstraints;A++){i&&A%1e4==0&&i.debug(`processing constraints: ${A}/${r.nConstraints}`);const I=g(),t=g(),e=g(),n=I.s,Q=t.s,B=e.s,o=C.Fr.mul(I.coef,t.coef),E=C.Fr.mul(I.coef,t.k),a=C.Fr.mul(I.k,t.coef),s=C.Fr.neg(e.coef),h=C.Fr.sub(C.Fr.mul(I.k,t.k),e.k);w.push([n,Q,B,o,E,a,s,h])}}();const l=await LI(t,"zkey",1,14,1<<22,1<<24);if(r.prime!=C.r)return i&&i.error("r1cs curve does not match powers of tau ceremony curve"),-1;let y=At(w.length-1)+1;y<3&&(y=3);const p=2**y;if(i&&i.info("Plonk constraints: "+w.length),y>n)return i&&i.error(`circuit too big for this power of tau ceremony. ${w.length} > 2**${n}`),-1;if(!e[12])return i&&i.error("Powers of tau is not prepared."),-1;const F=new VA(p*o),M=e[12][0].p+(2**y-1)*o;await g.readToBuffer(F,0,p*o,M);const[m,d]=function(){let A=s.two;for(;t(A,[],y);)s.add(A,s.one);let I=s.add(A,s.one);for(;t(I,[A],y);)s.add(I,s.one);return[A,I];function t(A,I,t){const i=2**t;let g=s.one;for(let e=0;e<i;e++){if(s.eq(A,g))return!0;for(let t=0;t<I.length;t++)if(s.eq(A,s.mul(I[t],g)))return!0;g=s.mul(g,s.w[t])}return!1}}(),G={};await async function(A,I){await kI(l,A);const t=new Uint8Array(8+2*h),g=new DataView(t.buffer);for(let A=0;A<D.length;A++){const e=D[A];let C=0;g.setUint32(C,e[0],!0),C+=4,g.setUint32(C,e[1],!0),C+=4,t.set(e[2],C),C+=h,t.set(e[3],C),C+=h,await l.write(t),i&&A%1e6==0&&i.debug(`writing ${I}: ${A}/${D.length}`)}await NI(l)}(3,"Additions"),await U(4,0,"Amap"),await U(5,1,"Bmap"),await U(6,2,"Cmap"),await b(7,3,"Qm"),await b(8,4,"Ql"),await b(9,5,"Qr"),await b(10,6,"Qo"),await b(11,7,"Qc"),await async function(A,I){const t=new VA(h*p*3),g=new bC(c),e=new bC(c);let n=s.one;for(let A=0;A<p;A++)A<w.length?(o(w[A][0],A),o(w[A][1],p+A),o(w[A][2],2*p+A)):(o(0,A),o(0,p+A),o(0,2*p+A)),n=s.mul(n,s.w[y]),i&&A%1e6==0&&i.debug(`writing ${I} phase1: ${A}/${w.length}`);for(let A=0;A<c;A++){if(void 0===e[A])throw new Error("Variable not used");t.set(g[A],e[A]*h),i&&A%1e6==0&&i.debug(`writing ${I} phase2: ${A}/${c}`)}await kI(l,A);let Q=t.slice(0,p*h);await L(Q);let B=t.slice(p*h,p*h*2);await L(B);let r=t.slice(p*h*2,p*h*3);function o(A,I){let i;void 0===g[A]?e[A]=I:t.set(g[A],I*h),i=I<p?n:I<2*p?s.mul(n,m):s.mul(n,d),g[A]=i}await L(r),await NI(l),Q=await s.batchFromMontgomery(Q),B=await s.batchFromMontgomery(B),r=await s.batchFromMontgomery(r),G.S1=await C.G1.multiExpAffine(F,Q,i,"multiexp S1"),G.S2=await C.G1.multiExpAffine(F,B,i,"multiexp S2"),G.S3=await C.G1.multiExpAffine(F,r,i,"multiexp S3")}(12,"sigma"),await async function(A,I){await kI(l,A);const t=Math.max(u,1);for(let A=0;A<t;A++){let g=new VA(p*h);g.set(s.one,A*h),await L(g),i&&i.debug(`writing ${I} ${A}/${t}`)}await NI(l)}(13,"lagrange polynomials"),await kI(l,14);const H=new VA((p+6)*o);return await g.readToBuffer(H,0,(p+6)*o,e[2][0].p),await l.write(H),await NI(l),await async function(){await kI(l,1),await l.writeULE32(2),await NI(l),await kI(l,2);const A=C.q,I=8*(Math.floor((aI.bitLength(A)-1)/64)+1),t=C.r,i=8*(Math.floor((aI.bitLength(t)-1)/64)+1);let n;await l.writeULE32(I),await vI(l,A,I),await l.writeULE32(i),await vI(l,t,i),await l.writeULE32(c),await l.writeULE32(u),await l.writeULE32(p),await l.writeULE32(D.length),await l.writeULE32(w.length),await l.write(m),await l.write(d),await l.write(E.toAffine(G.Qm)),await l.write(E.toAffine(G.Ql)),await l.write(E.toAffine(G.Qr)),await l.write(E.toAffine(G.Qo)),await l.write(E.toAffine(G.Qc)),await l.write(E.toAffine(G.S1)),await l.write(E.toAffine(G.S2)),await l.write(E.toAffine(G.S3)),n=await g.read(a,e[3][0].p+a),await l.write(n),await NI(l)}(),await l.close(),await Q.close(),await g.close(),void(i&&i.info("Setup Finished"));async function U(A,I,t){await kI(l,A);for(let A=0;A<w.length;A++)await l.writeULE32(w[A][I]),i&&A%1e6==0&&i.debug(`writing ${t}: ${A}/${w.length}`);await NI(l)}async function b(A,I,t){let g=new VA(p*h);for(let A=0;A<w.length;A++)g.set(w[A][I],A*h),i&&A%1e6==0&&i.debug(`writing ${t}: ${A}/${w.length}`);await kI(l,A),await L(g),await NI(l),g=await s.batchFromMontgomery(g),G[t]=await C.G1.multiExpAffine(F,g,i,"multiexp "+t)}async function L(A){const I=await s.ifft(A),t=new VA(p*h*4);t.set(I,0);const i=await s.fft(t);await l.write(I),await l.write(i)}},fullProve:async function(A,I,t,i){const g={type:"mem"};return await _i(A,I,g),await PC(t,g,i)},prove:PC,verify:async function(A,I,t,i){A=XC(A),t=XC(t),I=XC(I);const g=await ZI(A.curve),e=g.Fr,C=g.G1;if(t=function(A,I){const t=A.G1,i=A.Fr,g={};return g.A=t.fromObject(I.A),g.B=t.fromObject(I.B),g.C=t.fromObject(I.C),g.Z=t.fromObject(I.Z),g.T1=t.fromObject(I.T1),g.T2=t.fromObject(I.T2),g.T3=t.fromObject(I.T3),g.eval_a=i.fromObject(I.eval_a),g.eval_b=i.fromObject(I.eval_b),g.eval_c=i.fromObject(I.eval_c),g.eval_zw=i.fromObject(I.eval_zw),g.eval_s1=i.fromObject(I.eval_s1),g.eval_s2=i.fromObject(I.eval_s2),g.eval_r=i.fromObject(I.eval_r),g.Wxi=t.fromObject(I.Wxi),g.Wxiw=t.fromObject(I.Wxiw),g}(g,t),A=function(A,I){const t=A.G1,i=A.G2,g=A.Fr,e=I;return e.Qm=t.fromObject(I.Qm),e.Ql=t.fromObject(I.Ql),e.Qr=t.fromObject(I.Qr),e.Qo=t.fromObject(I.Qo),e.Qc=t.fromObject(I.Qc),e.S1=t.fromObject(I.S1),e.S2=t.fromObject(I.S2),e.S3=t.fromObject(I.S3),e.k1=g.fromObject(I.k1),e.k2=g.fromObject(I.k2),e.X_2=i.fromObject(I.X_2),e}(g,A),!function(A,I){const t=A.G1;return!!t.isValid(I.A)&&(!!t.isValid(I.B)&&(!!t.isValid(I.C)&&(!!t.isValid(I.Z)&&(!!t.isValid(I.T1)&&(!!t.isValid(I.T2)&&(!!t.isValid(I.T3)&&(!!t.isValid(I.Wxi)&&!!t.isValid(I.Wxiw))))))))}(g,t))return i.error("Proof is not well constructed"),!1;const n=function(A,I){const t=A.G1,i=A.Fr,g=A.Fr.n8,e={},C=new Uint8Array(2*t.F.n8*3);t.toRprUncompressed(C,0,I.A),t.toRprUncompressed(C,2*t.F.n8,I.B),t.toRprUncompressed(C,4*t.F.n8,I.C),e.beta=ZC(A,C);const n=new Uint8Array(g);i.toRprBE(n,0,e.beta),e.gamma=ZC(A,n);const Q=new Uint8Array(2*t.F.n8);t.toRprUncompressed(Q,0,I.Z),e.alpha=ZC(A,Q);const B=new Uint8Array(2*t.F.n8*3);t.toRprUncompressed(B,0,I.T1),t.toRprUncompressed(B,2*t.F.n8,I.T2),t.toRprUncompressed(B,4*t.F.n8,I.T3),e.xi=ZC(A,B);const r=new Uint8Array(7*g);i.toRprBE(r,0,I.eval_a),i.toRprBE(r,g,I.eval_b),i.toRprBE(r,2*g,I.eval_c),i.toRprBE(r,3*g,I.eval_s1),i.toRprBE(r,4*g,I.eval_s2),i.toRprBE(r,5*g,I.eval_zw),i.toRprBE(r,6*g,I.eval_r),e.v=[],e.v[1]=ZC(A,r);for(let A=2;A<=6;A++)e.v[A]=i.mul(e.v[A-1],e.v[1]);const o=new Uint8Array(2*t.F.n8*2);return t.toRprUncompressed(o,0,I.Wxi),t.toRprUncompressed(o,2*t.F.n8,I.Wxiw),e.u=ZC(A,o),e}(g,t);i&&(i.debug("beta: "+e.toString(n.beta,16)),i.debug("gamma: "+e.toString(n.gamma,16)),i.debug("alpha: "+e.toString(n.alpha,16)),i.debug("xi: "+e.toString(n.xi,16)),i.debug("v1: "+e.toString(n.v[1],16)),i.debug("v6: "+e.toString(n.v[6],16)),i.debug("u: "+e.toString(n.u,16)));const Q=function(A,I,t){const i=A.Fr;let g=I.xi,e=1;for(let A=0;A<t.power;A++)g=i.square(g),e*=2;I.xin=g,I.zh=i.sub(g,i.one);const C=[],n=i.e(e);let Q=i.one;for(let A=1;A<=Math.max(1,t.nPublic);A++)C[A]=i.div(i.mul(Q,I.zh),i.mul(n,i.sub(I.xi,Q))),Q=i.mul(Q,i.w[t.power]);return C}(g,n,A);if(i){i.debug("Lagrange Evaluations: ");for(let A=1;A<Q.length;A++)i.debug(`L${A}(xi)=`+e.toString(Q[A],16))}if(I.length!=A.nPublic)return i.error("Number of public signals does not match with vk"),!1;const B=function(A,I,t){const i=A.Fr;let g=i.zero;for(let A=0;A<I.length;A++){const e=i.e(I[A]);g=i.sub(g,i.mul(e,t[A+1]))}return g}(g,I,Q);i&&i.debug("Pl: "+e.toString(B,16));const r=function(A,I,t,i,g){const e=A.Fr;let C=I.eval_r;C=e.add(C,i);let n=I.eval_a;n=e.add(n,e.mul(t.beta,I.eval_s1)),n=e.add(n,t.gamma);let Q=I.eval_b;Q=e.add(Q,e.mul(t.beta,I.eval_s2)),Q=e.add(Q,t.gamma);let B=I.eval_c;B=e.add(B,t.gamma);let r=e.mul(e.mul(n,Q),B);r=e.mul(r,I.eval_zw),r=e.mul(r,t.alpha),C=e.sub(C,r),C=e.sub(C,e.mul(g,e.square(t.alpha)));return e.div(C,t.zh)}(g,t,n,B,Q[1]);i&&i.debug("t: "+e.toString(r,16));const o=function(A,I,t,i,g){const e=A.G1,C=A.Fr;let n=C.mul(C.mul(I.eval_a,I.eval_b),t.v[1]),Q=e.timesFr(i.Qm,n),B=C.mul(I.eval_a,t.v[1]);Q=e.add(Q,e.timesFr(i.Ql,B));let r=C.mul(I.eval_b,t.v[1]);Q=e.add(Q,e.timesFr(i.Qr,r));let o=C.mul(I.eval_c,t.v[1]);Q=e.add(Q,e.timesFr(i.Qo,o)),Q=e.add(Q,e.timesFr(i.Qc,t.v[1]));const E=C.mul(t.beta,t.xi);let a=I.eval_a;a=C.add(a,E),a=C.add(a,t.gamma);let s=I.eval_b;s=C.add(s,C.mul(E,i.k1)),s=C.add(s,t.gamma);let h=I.eval_c;h=C.add(h,C.mul(E,i.k2)),h=C.add(h,t.gamma);let f=C.mul(C.mul(a,s),h);f=C.mul(f,C.mul(t.alpha,t.v[1]));let w=C.mul(C.mul(g,C.square(t.alpha)),t.v[1]);f=C.add(f,w),f=C.add(f,t.u),Q=e.add(Q,e.timesFr(I.Z,f));let D=I.eval_a;D=C.add(D,C.mul(t.beta,I.eval_s1)),D=C.add(D,t.gamma);let c=I.eval_b;c=C.add(c,C.mul(t.beta,I.eval_s2)),c=C.add(c,t.gamma);let u=C.mul(D,c);return u=C.mul(u,t.alpha),u=C.mul(u,t.v[1]),u=C.mul(u,t.beta),u=C.mul(u,I.eval_zw),Q=e.sub(Q,e.timesFr(i.S3,u)),Q}(g,t,n,A,Q[1]);i&&i.debug("D: "+C.toString(C.toAffine(o),16));const E=function(A,I,t,i,g){const e=A.G1,C=A.Fr;let n=I.T1;return n=e.add(n,e.timesFr(I.T2,t.xin)),n=e.add(n,e.timesFr(I.T3,C.square(t.xin))),n=e.add(n,g),n=e.add(n,e.timesFr(I.A,t.v[2])),n=e.add(n,e.timesFr(I.B,t.v[3])),n=e.add(n,e.timesFr(I.C,t.v[4])),n=e.add(n,e.timesFr(i.S1,t.v[5])),n=e.add(n,e.timesFr(i.S2,t.v[6])),n}(g,t,n,A,o);i&&i.debug("F: "+C.toString(C.toAffine(E),16));const a=function(A,I,t,i,g){const e=A.G1,C=A.Fr;let n=g;n=C.add(n,C.mul(t.v[1],I.eval_r)),n=C.add(n,C.mul(t.v[2],I.eval_a)),n=C.add(n,C.mul(t.v[3],I.eval_b)),n=C.add(n,C.mul(t.v[4],I.eval_c)),n=C.add(n,C.mul(t.v[5],I.eval_s1)),n=C.add(n,C.mul(t.v[6],I.eval_s2)),n=C.add(n,C.mul(t.u,I.eval_zw));return e.timesFr(e.one,n)}(g,t,n,0,r);i&&i.debug("E: "+C.toString(C.toAffine(a),16));const s=await async function(A,I,t,i,g,e){const C=A.G1,n=A.Fr;let Q=I.Wxi;Q=C.add(Q,C.timesFr(I.Wxiw,t.u));let B=C.timesFr(I.Wxi,t.xi);const r=n.mul(n.mul(t.u,t.xi),n.w[i.power]);B=C.add(B,C.timesFr(I.Wxiw,r)),B=C.add(B,e),B=C.sub(B,g);return await A.pairingEq(C.neg(Q),i.X_2,B,A.G2.one)}(g,t,n,A,a,E);return i&&(s?i.info("OK!"):i.warn("Invalid Proof")),s},exportSolidityCallData:async function(A,I){const t=await ZI(A.curve),i=t.G1,g=t.Fr;let e="";for(let A=0;A<I.length;A++)""!=e&&(e+=","),e+=KC(I[A]);const C=new Uint8Array(2*i.F.n8*9+7*g.n8);return i.toRprUncompressed(C,0,i.e(A.A)),i.toRprUncompressed(C,2*i.F.n8,i.e(A.B)),i.toRprUncompressed(C,4*i.F.n8,i.e(A.C)),i.toRprUncompressed(C,6*i.F.n8,i.e(A.Z)),i.toRprUncompressed(C,8*i.F.n8,i.e(A.T1)),i.toRprUncompressed(C,10*i.F.n8,i.e(A.T2)),i.toRprUncompressed(C,12*i.F.n8,i.e(A.T3)),i.toRprUncompressed(C,14*i.F.n8,i.e(A.Wxi)),i.toRprUncompressed(C,16*i.F.n8,i.e(A.Wxiw)),g.toRprBE(C,18*i.F.n8,g.e(A.eval_a)),g.toRprBE(C,18*i.F.n8+g.n8,g.e(A.eval_b)),g.toRprBE(C,18*i.F.n8+2*g.n8,g.e(A.eval_c)),g.toRprBE(C,18*i.F.n8+3*g.n8,g.e(A.eval_s1)),g.toRprBE(C,18*i.F.n8+4*g.n8,g.e(A.eval_s2)),g.toRprBE(C,18*i.F.n8+5*g.n8,g.e(A.eval_zw)),g.toRprBE(C,18*i.F.n8+6*g.n8,g.e(A.eval_r)),"0x"+Array.from(C).map(VC).join("")+",["+e+"]"}});return A.groth16=Ig,A.plonk=jC,A.powersOfTau=ug,A.r1cs=MC,A.wtns=dC,A.zKey=RC,Object.defineProperty(A,"__esModule",{value:!0}),A}({});
|