genosdb 0.32.0 → 0.32.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -248,7 +248,7 @@ ${W.join(`
248
248
  `);return Y.forEach((J)=>{if(J.startsWith("m="))X.push([J]);else if(X.length>0)X[X.length-1].push(J);else G.push(J)}),[G,X]}function OK(W){if(W.includes(":")){let G=f4(W.slice(2),":");return[G[0],G[1]]}else return[W.slice(2),void 0]}function DK(W,G,X=(Y)=>Y.toString()){let Y=G.split(" ");if(Y.length>0)W.push(new oV(Y[0],Y.slice(1).map(X)))}function Ax(W){let G=DG.fromSdp(W);return eV(G)}var vr=class{constructor(W,G){this.sdp=W,this.type=G}static isThis(W){if(typeof W?.sdp==="string")return!0}toSdp(){return{sdp:this.sdp,type:this.type}}};function zS(W,G){let Y=new Eq(ei(64)).toString().slice(0,8),J=0;G.origin=`- ${Y} 0 IN IP4 0.0.0.0`,G.msidSemantic.push(new oV("WMS",["*"])),G.type=W}function HH(W){let G={};return W.split(";").forEach((X)=>{if(X.includes("=")){let[Y,J]=f4(X,"=");if(ki.includes(Y))G[Y]=Number(J);else G[Y]=J}else if(X.includes(":")){let[Y,J]=X.split(":");G[Y]=Number.isNaN(Number(J))?J:Number(J)}else G[X]=void 0}),G}var eK=class{ssrc;cname;msid;msLabel;label;constructor(W){Object.assign(this,W)}},vq=M1("werift:packages/webrtc/src/media/rtpReceiver.ts"),zx=class{constructor(W,G,X){this.config=W,this.kind=G,this.rtcpSsrc=X}codecs={};get codecArray(){return Object.values(this.codecs).sort((W,G)=>W.payloadType-G.payloadType)}ssrcByRtx={};nack=new ii(this);audioRedHandler=new Qn;type="receiver";uuid=Li().toString();tracks=[];trackBySSRC={};trackByRID={};lastSRtimestamp={};receiveLastSRTimestamp={};onPacketLost=this.nack.onPacketLost;onRtcp=new c0;dtlsTransport;sdesMid;latestRid;latestRepairedRid;receiverTWCC;stopped=!1;remoteStreamId;remoteTrackId;rtcpRunning=!1;rtcpCancel=new AbortController;remoteStreams={};setDtlsTransport(W){this.dtlsTransport=W}get track(){return this.tracks[0]??new hK({kind:this.kind})}get nackEnabled(){return this.codecArray[0]?.rtcpFeedback.find((W)=>W.type==="nack")}get twccEnabled(){return this.codecArray[0]?.rtcpFeedback.find((W)=>W.type===Ki().type)}get pliEnabled(){return this.codecArray[0]?.rtcpFeedback.find((W)=>W.type===QU().type)}prepareReceive(W){W.codecs.forEach((G)=>{this.codecs[G.payloadType]=G}),W.encodings.forEach((G)=>{if(G.rtx)this.ssrcByRtx[G.rtx.ssrc]=G.ssrc})}setupTWCC(W){if(this.twccEnabled&&!this.receiverTWCC)this.receiverTWCC=new si(this.dtlsTransport,this.rtcpSsrc,W)}addTrack(W){if(this.tracks.find((X)=>{if(X.rid)return X.rid===W.rid;if(X.ssrc)return X.ssrc===W.ssrc}))return!1;if(this.tracks.push(W),W.ssrc)this.trackBySSRC[W.ssrc]=W;if(W.rid)this.trackByRID[W.rid]=W;return!0}stop(){if(this.stopped=!0,this.rtcpRunning=!1,this.rtcpCancel.abort(),this.receiverTWCC)this.receiverTWCC.twccRunning=!1;this.nack.close()}async runRtcp(){if(this.rtcpRunning||this.stopped)return;this.rtcpRunning=!0;try{while(this.rtcpRunning){await wK(500+Math.random()*1000,void 0,{signal:this.rtcpCancel.signal});let W=Object.entries(this.remoteStreams).map(([X,Y])=>{let J=0,Z=0;if(this.lastSRtimestamp[X]){J=this.lastSRtimestamp[X];let V=NH()-this.receiveLastSRTimestamp[X];if(V>0&&V<65536)Z=lV(V*65536)}return new XO({ssrc:Number(X),fractionLost:Y.fraction_lost,packetsLost:Y.packets_lost,highestSequence:Y.max_seq,jitter:Y.jitter,lsr:J,dlsr:Z})}),G=new rV({ssrc:this.rtcpSsrc,reports:W});try{if(this.config.debug.receiverReportDelay)await wK(this.config.debug.receiverReportDelay);await this.dtlsTransport.sendRtcp([G])}catch(X){vq("sendRtcp failed",X),await wK(500+Math.random()*1000)}}}catch(W){}}async getStats(){let W=$G(),G=[];if(!this.dtlsTransport)return G;let X=U8("transport",this.dtlsTransport.id);for(let Y of this.tracks){if(!Y.ssrc)continue;let J=this.remoteStreams[Y.ssrc];if(!J)continue;let Z={type:"inbound-rtp",id:U8("inbound-rtp",Y.ssrc),timestamp:W,ssrc:Y.ssrc,kind:this.kind,transportId:X,codecId:this.codecs[0]?U8("codec",this.codecs[0].payloadType,X):void 0,mid:this.sdesMid,trackIdentifier:Y.id,packetsReceived:J.packets_received,packetsLost:J.packets_lost,jitter:J.jitter};if(G.push(Z),this.lastSRtimestamp[Y.ssrc]){let V={type:"remote-outbound-rtp",id:U8("remote-outbound-rtp",Y.ssrc),timestamp:W,ssrc:Y.ssrc,kind:this.kind,transportId:X,codecId:Z.codecId,localId:Z.id,remoteTimestamp:this.receiveLastSRTimestamp[Y.ssrc]*1000};G.push(V)}}return G}async sendRtcpPLI(W){if(!this.pliEnabled){vq("pli not supported",{mediaSsrc:W});return}if(this.stopped)return;vq("sendRtcpPLI",{mediaSsrc:W});let G=new iV({feedback:new JH({senderSsrc:this.rtcpSsrc,mediaSsrc:W})});try{await this.dtlsTransport.sendRtcp([G])}catch(X){vq(X)}}handleRtcpPacket(W){switch(W.type){case mY.type:{let G=W;this.lastSRtimestamp[G.ssrc]=t2(G.senderInfo.ntpTimestamp),this.receiveLastSRTimestamp[G.ssrc]=NH();let X=this.trackBySSRC[W.ssrc];if(X)X.onReceiveRtcp.execute(W)}break}this.onRtcp.execute(W)}handleRtpBySsrc=(W,G)=>{let X=this.trackBySSRC[W.header.ssrc];this.handleRTP(W,G,X)};handleRtpByRid=(W,G,X)=>{let Y=this.trackByRID[G];if(!this.trackBySSRC[W.header.ssrc])this.trackBySSRC[W.header.ssrc]=Y;this.handleRTP(W,X,Y)};handleRTP(W,G,X){if(this.stopped)return;let Y=this.codecs[W.header.payloadType];if(!Y)return;if(this.remoteStreams[W.header.ssrc]=this.remoteStreams[W.header.ssrc]??new ti(Y.clockRate),this.remoteStreams[W.header.ssrc].add(W),this.receiverTWCC){let Z=G[M9.transportWideCC];if(!Z==null)throw Error("undefined");this.receiverTWCC.handleTWCC(Z)}else if(this.twccEnabled)this.setupTWCC(W.header.ssrc);if(Y.name.toLowerCase()==="rtx"){let Z=this.ssrcByRtx[W.header.ssrc],V=HH(Y.parameters??""),U=this.codecs[V.apt];if(W.payload.length<2)return;W=Nn(W,U.payloadType,Z),X=this.trackBySSRC[Z]}let J;if(Y.name.toLowerCase()==="red"){if(J=q2.deSerialize(W.payload),!Object.keys(this.codecs).includes(J.header.fields[0].blockPT.toString()))return}if(X?.kind==="video"&&this.nackEnabled)this.nack.addPacket(W);if(X)if(J){if(X.kind==="audio"){let Z=this.audioRedHandler.push(J,W);for(let V of Z)X.onReceiveRtp.execute(V.clone(),G)}}else X.onReceiveRtp.execute(W.clone(),G);this.runRtcp()}},hV=M1("werift:packages/webrtc/src/media/router.ts"),gr=class{ssrcTable={};ridTable={};extIdUriMap={};constructor(){}registerRtpSender(W){this.ssrcTable[W.ssrc]=W}registerRtpReceiver(W,G){hV("registerRtpReceiver",G),this.ssrcTable[G]=W}registerRtpReceiverBySsrc(W,G){hV("registerRtpReceiverBySsrc",G),G.encodings.filter((X)=>X.ssrc!=null).forEach((X,Y)=>{if(this.registerRtpReceiver(W.receiver,X.ssrc),W.addTrack(new hK({ssrc:X.ssrc,kind:W.kind,id:W.sender.trackId,remote:!0,codec:G.codecs[Y]})),X.rtx)this.registerRtpReceiver(W.receiver,X.rtx.ssrc)}),G.headerExtensions.forEach((X)=>{this.extIdUriMap[X.id]=X.uri})}registerRtpReceiverByRid(W,G,X){let[Y]=X.codecs;hV("registerRtpReceiverByRid",G),W.addTrack(new hK({rid:G.rid,kind:W.kind,id:W.sender.trackId,remote:!0,codec:Y})),this.ridTable[G.rid]=W.receiver}routeRtp=(W)=>{let G=io(W.header.extensions,this.extIdUriMap),X=this.ssrcTable[W.header.ssrc],Y=G[M9.sdesRTPStreamID];if(typeof Y==="string")X=this.ridTable[Y],X.latestRid=Y,X.handleRtpByRid(W,Y,G);else if(X)X.handleRtpBySsrc(W,G);else if(X=Object.values(this.ridTable).filter((V)=>V instanceof zx).find((V)=>V.trackBySSRC[W.header.ssrc]),X)hV("simulcast register receiver by ssrc",W.header.ssrc),this.registerRtpReceiver(X,W.header.ssrc),X.handleRtpBySsrc(W,G);if(!X){hV("ssrcReceiver not found");return}let J=G[M9.sdesMid];if(typeof J==="string")X.sdesMid=J;let Z=G[M9.repairedRtpStreamId];if(typeof Z==="string")X.latestRepairedRid=Z};routeRtcp=(W)=>{let G=[];switch(W.type){case mY.type:W=W,G.push(this.ssrcTable[W.ssrc]);break;case rV.type:W=W,W.reports.forEach((X)=>{G.push(this.ssrcTable[X.ssrc])});break;case QH.type:{let X=W}break;case bY.type:{let X=W;if(X.feedback)G.push(this.ssrcTable[X.feedback.mediaSourceSsrc])}break;case iV.type:{let X=W;switch(X.feedback.count){case ZH.count:{let Y=X.feedback;G.push(this.ssrcTable[Y.ssrcFeedbacks[0]])}break;default:G.push(this.ssrcTable[X.feedback.senderSsrc]||this.ssrcTable[X.feedback.mediaSsrc])}}break}G.filter((X)=>X).forEach((X)=>X.handleRtcpPacket(W))}},ur=class{numPackets=0;totalSize=0;firstPacketSentAtMs=0;lastPacketSentAtMs=0;firstPacketReceivedAtMs=0;lastPacketReceivedAtMs=0;addPacket(W,G,X){if(this.numPackets===0)this.firstPacketSentAtMs=G,this.firstPacketReceivedAtMs=X,this.lastPacketSentAtMs=G,this.lastPacketReceivedAtMs=X;else{if(G<this.firstPacketSentAtMs)this.firstPacketSentAtMs=G;if(X<this.firstPacketReceivedAtMs)this.firstPacketReceivedAtMs=X;if(G>this.lastPacketSentAtMs)this.lastPacketSentAtMs=G;if(X>this.lastPacketReceivedAtMs)this.lastPacketReceivedAtMs=X}this.numPackets++,this.totalSize+=W}reset(){this.numPackets=0,this.totalSize=0,this.firstPacketSentAtMs=0,this.lastPacketSentAtMs=0,this.firstPacketReceivedAtMs=0,this.lastPacketReceivedAtMs=0}get receiveBitrate(){let W=this.lastPacketReceivedAtMs-this.firstPacketReceivedAtMs,G=this.totalSize/W*8*1000;return YH(G)}get sendBitrate(){let W=this.lastPacketSentAtMs-this.firstPacketSentAtMs,G=this.totalSize/W*8*1000;return YH(G)}},kY=20,hr=10,br=class{congestion=!1;onAvailableBitrate=new c0;onCongestion=new c0;onCongestionScore=new c0;congestionCounter=0;cumulativeResult=new ur;sentInfos={};_congestionScore=1;get congestionScore(){return this._congestionScore}set congestionScore(W){this._congestionScore=W,this.onCongestionScore.execute(W)}_availableBitrate=0;get availableBitrate(){return this._availableBitrate}set availableBitrate(W){this._availableBitrate=W,this.onAvailableBitrate.execute(W)}constructor(){}receiveTWCC(W){let X=s2()-this.cumulativeResult.firstPacketSentAtMs;if(X>1000){if(this.cumulativeResult.reset(),this.congestionCounter<kY)this.congestionCounter++;else if(this.congestionScore<hr)this.congestionScore++;if(this.congestionCounter>=kY&&!this.congestion)this.congestion=!0,this.onCongestion.execute(this.congestion)}for(let Y of W.packetResults){if(!Y.received)continue;let J=Y.sequenceNumber,Z=this.sentInfos[J];if(!Z)continue;if(!Y.receivedAtMs)continue;this.cumulativeResult.addPacket(Z.size,Z.sendingAtMs,Y.receivedAtMs)}if(X>=100&&this.cumulativeResult.numPackets>=20){if(this.availableBitrate=Math.min(this.cumulativeResult.sendBitrate,this.cumulativeResult.receiveBitrate),this.cumulativeResult.reset(),this.congestionCounter>-kY){let Y=YH(kY/2)+1,J=YH(kY/4)+1,Z=Y-(Y-J)/10*this.congestionScore;this.congestionCounter=this.congestionCounter-Z}if(this.congestionCounter<=-kY){if(this.congestionScore>1)this.congestionScore--,this.onCongestion.execute(!1);this.congestionCounter=0}if(this.congestionCounter<=0&&this.congestion)this.congestion=!1,this.onCongestion.execute(this.congestion)}}rtpPacketSent(W){Object.keys(W).map((G)=>Number(G)).sort().filter((G)=>G<W.wideSeq).forEach((G)=>{delete this.sentInfos[G]}),this.sentInfos[W.wideSeq]=W}},CK=M1("werift:packages/webrtc/src/media/rtpSender.ts"),KS=128,OS=0.85,mr=class{constructor(W){if(this.trackOrKind=W,this.kind=typeof this.trackOrKind==="string"?this.trackOrKind:this.trackOrKind.kind,typeof W!=="string"){if(W.streamId)this.streamId=W.streamId;this.registerTrack(W)}}type="sender";kind;ssrc=e1.Unpack("!L",IS(4))[0];rtxSsrc=e1.Unpack("!L",IS(4))[0];streamId=wS().toString();trackId=wS().toString();onReady=new c0;onRtcp=new c0;onPictureLossIndication=new c0;onGenericNack=new c0;senderBWE=new br;cname;mid;rtpStreamId;repairedRtpStreamId;rtxPayloadType;rtxSequenceNumber=TS();redRedundantPayloadType;_redDistance=2;redEncoder=new Vn(this._redDistance);headerExtensions=[];disposeTrack;lastSRtimestamp;lastSentSRTimestamp;ntpTimestamp=0n;rtpTimestamp=0;octetCount=0;packetCount=0;rtt;receiverEstimatedMaxBitrate=0n;sequenceNumber;timestamp;timestampOffset=0;seqOffset=0;rtpCache=[];codec;dtlsTransport;dtlsDisposer=[];track;stopped=!1;rtcpRunning=!1;rtcpCancel=new AbortController;setDtlsTransport(W){if(this.dtlsTransport)this.dtlsDisposer.forEach((G)=>G());this.dtlsTransport=W,this.dtlsDisposer=[this.dtlsTransport.onStateChange.subscribe((G)=>{if(G==="connected")this.onReady.execute()}).unSubscribe]}get redDistance(){return this._redDistance}set redDistance(W){this._redDistance=W,this.redEncoder.distance=W}prepareSend(W){if(this.cname=W.rtcp?.cname,this.mid=W.muxId,this.headerExtensions=W.headerExtensions,this.rtpStreamId=W.rtpStreamId,this.repairedRtpStreamId=W.repairedRtpStreamId,this.codec=W.codecs[0],this.track)this.track.codec=this.codec;W.codecs.forEach((G)=>{let X=HH(G.parameters??"");if(G.name.toLowerCase()==="rtx"&&X.apt===this.codec?.payloadType)this.rtxPayloadType=G.payloadType;if(G.name.toLowerCase()==="red")this.redRedundantPayloadType=Number((G.parameters??"").split("/")[0])})}registerTrack(W){if(W.stopped)throw Error("track is ended");if(this.disposeTrack)this.disposeTrack();W.id=this.trackId;let{unSubscribe:G}=W.onReceiveRtp.subscribe(async(X)=>{await this.sendRtp(X)});if(this.track=W,this.disposeTrack=G,this.codec)W.codec=this.codec;W.onSourceChanged.subscribe((X)=>{this.replaceRTP(X)})}async replaceTrack(W){if(W===null)return;if(W.stopped)throw Error("track is ended");if(this.sequenceNumber!=null){let G=W.header||(await W.onReceiveRtp.asPromise())[0].header;this.replaceRTP(G)}this.registerTrack(W),CK("replaceTrack","ssrc",W.ssrc,"rid",W.rid)}stop(){if(this.stopped=!0,this.rtcpRunning=!1,this.rtcpCancel.abort(),this.disposeTrack)this.disposeTrack();this.track=void 0}async runRtcp(){if(this.rtcpRunning||this.stopped)return;this.rtcpRunning=!0;try{while(this.rtcpRunning){await jS(500+Math.random()*1000,void 0,{signal:this.rtcpCancel.signal});let W=[new mY({ssrc:this.ssrc,senderInfo:new N2({ntpTimestamp:this.ntpTimestamp,rtpTimestamp:this.rtpTimestamp,packetCount:this.packetCount,octetCount:this.octetCount})})];if(this.lastSRtimestamp=t2(this.ntpTimestamp),this.lastSentSRTimestamp=NH(),this.cname)W.push(new QH({chunks:[new U2({source:this.ssrc,items:[new Q2({type:1,text:this.cname})]})]}));try{await this.dtlsTransport.sendRtcp(W)}catch(G){CK("sendRtcp failed",G),await jS(500+Math.random()*1000)}}}catch(W){}}replaceRTP({sequenceNumber:W,timestamp:G},X=!1){if(this.sequenceNumber!=null){if(this.seqOffset=P9(this.sequenceNumber,-W),X)this.seqOffset=P9(this.seqOffset,2)}if(this.timestamp!=null){if(this.timestampOffset=gY(this.timestamp,-G),X)this.timestampOffset=P9(this.timestampOffset,1)}this.rtpCache=[],CK("replaceRTP",this.sequenceNumber,W,this.seqOffset)}async sendRtp(W){if(this.dtlsTransport.state!=="connected"||!this.codec)return;W=Buffer.isBuffer(W)?e6.deSerialize(W):W;let{header:G,payload:X}=W;G.ssrc=this.ssrc,G.payloadType=this.codec.payloadType,G.timestamp=gY(G.timestamp,this.timestampOffset),G.sequenceNumber=P9(G.sequenceNumber,this.seqOffset),this.timestamp=G.timestamp,this.sequenceNumber=G.sequenceNumber;let Y=li(),J=[...G.extensions];G.extensions=this.headerExtensions.map((N)=>{let q=(()=>{switch(N.uri){case M9.sdesMid:if(this.mid)return ro(this.mid);return;case M9.sdesRTPStreamID:if(this.rtpStreamId)return ao(this.rtpStreamId);return;case M9.repairedRtpStreamId:if(this.repairedRtpStreamId)return so(this.repairedRtpStreamId);return;case M9.transportWideCC:return this.dtlsTransport.transportSequenceNumber=P9(this.dtlsTransport.transportSequenceNumber,1),to(this.dtlsTransport.transportSequenceNumber);case M9.absSendTime:return eo(Y)}})();if(q)return{id:N.id,payload:q}}).filter((N)=>N);for(let N of J){let q=G.extensions.find((A)=>A.id===N.id);if(q)q.payload=N.payload;else G.extensions.push(N)}G.extensions=G.extensions.sort((N,q)=>N.id-q.id),this.ntpTimestamp=Y,this.rtpTimestamp=G.timestamp,this.octetCount+=X.length,this.packetCount=gY(this.packetCount,1),this.rtpCache[G.sequenceNumber%KS]=W;let Z=X;if(this.redRedundantPayloadType)this.redEncoder.push({block:Z,timestamp:G.timestamp,blockPT:this.redRedundantPayloadType}),Z=this.redEncoder.build().serialize();let V=await this.dtlsTransport.sendRtp(Z,G);this.runRtcp();let U=s2(),Q={wideSeq:this.dtlsTransport.transportSequenceNumber,size:V,sendingAtMs:U,sentAtMs:U};this.senderBWE.rtpPacketSent(Q)}handleRtcpPacket(W){switch(W.type){case mY.type:case rV.type:W.reports.filter((X)=>X.ssrc===this.ssrc).forEach((X)=>{if(this.lastSRtimestamp===X.lsr&&X.dlsr){if(this.lastSentSRTimestamp){let Y=NH()-this.lastSentSRTimestamp-X.dlsr/65536;if(this.rtt===void 0)this.rtt=Y;else this.rtt=OS*this.rtt+(1-OS)*Y}}});break;case bY.type:{let G=W;switch(G.feedback.count){case UH.count:{let X=G.feedback;this.senderBWE.receiveTWCC(X)}break;case VH.count:{let X=G.feedback;X.lost.forEach(async(Y)=>{let J=this.rtpCache[Y%KS];if(J&&J.header.sequenceNumber!==Y)J=void 0;if(J){if(this.rtxPayloadType!=null)J=qn(J,this.rtxPayloadType,this.rtxSequenceNumber,this.rtxSsrc),this.rtxSequenceNumber=P9(this.rtxSequenceNumber,1);await this.dtlsTransport.sendRtp(J.payload,J.header)}}),this.onGenericNack.execute(X)}break}}break;case iV.type:{let G=W;switch(G.feedback.count){case ZH.count:{let X=G.feedback;this.receiverEstimatedMaxBitrate=X.bitrate}break;case JH.count:this.onPictureLossIndication.execute();break}}break}this.onRtcp.execute(W)}getParameters(){return{encodings:[]}}setParameters(W){}async getStats(){let W=$G(),G=[];if(!this.dtlsTransport)return G;let X=U8("transport",this.dtlsTransport.id),Y={type:"outbound-rtp",id:U8("outbound-rtp",this.ssrc),timestamp:W,ssrc:this.ssrc,kind:this.kind,transportId:X,codecId:this.codec?U8("codec",this.codec.payloadType,X):void 0,mid:this.mid,packetsSent:this.packetCount,bytesSent:this.octetCount,rtxSsrc:this.rtxPayloadType?this.rtxSsrc:void 0};if(G.push(Y),this.track){let J={type:"media-source",id:U8("media-source",this.trackId),timestamp:W,trackIdentifier:this.trackId,kind:this.kind};G.push(J)}if(this.rtt!==void 0){let J={type:"remote-inbound-rtp",id:U8("remote-inbound-rtp",this.ssrc),timestamp:W,ssrc:this.ssrc,kind:this.kind,transportId:X,codecId:Y.codecId,localId:Y.id,roundTripTime:this.rtt};G.push(J)}return G}},pr=M1("werift:packages/webrtc/src/transport/sctpManager.ts"),cr=class{sctpTransport;sctpRemotePort;dataChannelsOpened=0;dataChannelsClosed=0;dataChannels=[];onDataChannel=new c0;constructor(){}createSctpTransport(W){let G=new kr(5000,W);return G.mid=void 0,G.onDataChannel.subscribe((X)=>{this.dataChannelsOpened++,this.dataChannels.push(X),this.onDataChannel.execute(X)}),this.sctpTransport=G,G}createDataChannel(W,G={}){let Y={...{protocol:"",ordered:!0,negotiated:!1},...G};if(Y.maxPacketLifeTime&&Y.maxRetransmits)throw Error("can not select both");if(!this.sctpTransport)this.sctpTransport=this.createSctpTransport();let J=new u2({id:Y.id,label:W,maxPacketLifeTime:Y.maxPacketLifeTime,maxRetransmits:Y.maxRetransmits,negotiated:Y.negotiated,ordered:Y.ordered,protocol:Y.protocol}),Z=new g2(this.sctpTransport,J);return this.dataChannelsOpened++,this.dataChannels.push(Z),Z.stateChange.subscribe((V)=>{if(V==="closed"){this.dataChannelsClosed++;let U=this.dataChannels.indexOf(Z);if(U!==-1)this.dataChannels.splice(U,1)}}),Z}async connectSctp(){if(!this.sctpTransport||!this.sctpRemotePort)return;await this.sctpTransport.start(this.sctpRemotePort),await this.sctpTransport.sctp.stateChanged.connected.asPromise(),pr("sctp connected")}setRemoteSCTP(W,G){if(!this.sctpTransport)return;if(this.sctpTransport.setRemoteMaxMessageSize(W.sctpCapabilities?.maxMessageSize),this.sctpRemotePort=W.sctpPort,!this.sctpRemotePort)throw Error("sctpRemotePort not exist");if(this.sctpTransport.setRemotePort(this.sctpRemotePort),this.sctpTransport.mLineIndex=G,!this.sctpTransport.mid)this.sctpTransport.mid=W.rtp.muxId}async close(){if(this.sctpTransport)await this.sctpTransport.stop();this.onDataChannel.allUnsubscribe()}async getStats(){let W=$G(),G=[];for(let X of this.dataChannels){let Y={type:"data-channel",id:U8("data-channel",X.id),timestamp:W,label:X.label,protocol:X.protocol,dataChannelIdentifier:X.id,state:X.readyState,messagesSent:X.messagesSent||0,bytesSent:X.bytesSent||0,messagesReceived:X.messagesReceived||0,bytesReceived:X.bytesReceived||0};G.push(Y)}return G}},lr=class{currentLocalDescription;currentRemoteDescription;pendingLocalDescription;pendingRemoteDescription;cname;midSuffix;bundlePolicy;seenMid=new Set;constructor({cname:W,midSuffix:G,bundlePolicy:X}){this.cname=W,this.midSuffix=G??!1,this.bundlePolicy=X}get localDescription(){if(!this._localDescription)return;return this._localDescription.toJSON()}get remoteDescription(){if(!this._remoteDescription)return;return this._remoteDescription.toJSON()}get _localDescription(){return this.pendingLocalDescription||this.currentLocalDescription}get _remoteDescription(){return this.pendingRemoteDescription||this.currentRemoteDescription}get inactiveRemoteMedia(){return this._remoteDescription?.media?.find?.((W)=>W.direction==="inactive")}createMediaDescriptionForTransceiver(W,G){let X=new sK(W.kind,9,"UDP/TLS/RTP/SAVPF",W.codecs.map((Y)=>Y.payloadType));if(X.direction=G,X.msid=W.msid,X.rtp={codecs:W.codecs,headerExtensions:W.headerExtensions,muxId:W.mid},X.rtcpHost="0.0.0.0",X.rtcpPort=9,X.rtcpMux=!0,X.ssrc=[new eK({ssrc:W.sender.ssrc,cname:this.cname})],W.options.simulcast)X.simulcastParameters=W.options.simulcast.map((Y)=>new h2(Y));if(X.rtp.codecs.find((Y)=>Y.name.toLowerCase()==="rtx"))X.ssrc.push(new eK({ssrc:W.sender.rtxSsrc,cname:this.cname})),X.ssrcGroup=[new oV("FID",[W.sender.ssrc.toString(),W.sender.rtxSsrc.toString()])];return this.addTransportDescription(X,W.dtlsTransport),X}createMediaDescriptionForSctp(W){let G=new sK("application",rF,"UDP/DTLS/SCTP",["webrtc-datachannel"]);return G.sctpPort=W.port,G.rtp.muxId=W.mid,G.sctpCapabilities=W.getCapabilities(),this.addTransportDescription(G,W.dtlsTransport),G}addTransportDescription(W,G){let X=G.iceTransport;if(W.iceCandidates=X.localCandidates,W.iceCandidatesComplete=X.gatheringState==="complete",W.iceParams=X.localParameters,W.iceOptions="trickle",W.host=xi,W.port=rF,W.direction==="inactive")W.port=0,W.msid=void 0;if(!W.dtlsParams){if(W.dtlsParams=G.localParameters,!W.dtlsParams.fingerprints)W.dtlsParams.fingerprints=G.localParameters.fingerprints}}allocateMid(W=""){let G="";for(let X=0;;)if(G=(X++).toString()+W,!this.seenMid.has(G))break;return this.seenMid.add(G),G}parseSdp({sdp:W,isLocal:G,signalingState:X,type:Y}){let J=rq.parse(W);return this.validateDescription({description:J,isLocal:G,signalingState:X}),J.type=Y,J}validateDescription({description:W,isLocal:G,signalingState:X}){if(G){if(W.type==="offer"){if(!["stable","have-local-offer"].includes(X))throw Error("Cannot handle offer in signaling state")}else if(W.type==="answer"){if(!["have-remote-offer","have-local-pranswer"].includes(X))throw Error("Cannot handle answer in signaling state")}}else if(W.type==="offer"){if(!["stable","have-remote-offer"].includes(X))throw Error("Cannot handle offer in signaling state")}else if(W.type==="answer"){if(!["have-local-offer","have-remote-pranswer"].includes(X))throw Error("Cannot handle answer in signaling state")}}buildOfferSdp(W,G){let X=new rq;zS("offer",X),(this.currentLocalDescription?.media??[]).forEach((J,Z)=>{let V=J.rtp.muxId;if(!V)return;if(J.kind==="application"){if(!G)throw Error("sctpTransport not found");G.mLineIndex=Z,X.media.push(this.createMediaDescriptionForSctp(G))}else{let U=W.find((Q)=>Q.mid===V);if(!U){if(J.direction==="inactive"){X.media.push(J);return}throw Error("transceiver not found")}U.mLineIndex=Z,X.media.push(this.createMediaDescriptionForTransceiver(U,U.direction))}});for(let J of W.filter((Z)=>!X.media.find((V)=>V.rtp.muxId===Z.mid))){if(J.mid==null)J.mid=this.allocateMid(this.midSuffix?"av":"");let Z=this.createMediaDescriptionForTransceiver(J,J.direction);if(J.mLineIndex===void 0)J.mLineIndex=X.media.length,X.media.push(Z);else X.media[J.mLineIndex]=Z}if(G&&!X.media.find((J)=>J.kind==="application")){if(G.mLineIndex=X.media.length,G.mid==null)G.mid=this.allocateMid(this.midSuffix?"dc":"");X.media.push(this.createMediaDescriptionForSctp(G))}if(this.bundlePolicy!=="disable"){let J=X.media.map((Z)=>Z.rtp.muxId).filter((Z)=>Z);if(J.length){let Z=new oV("BUNDLE",J);X.group.push(Z)}}return X}buildAnswerSdp({transceivers:W,sctpTransport:G,signalingState:X}){if(!["have-remote-offer","have-local-pranswer"].includes(X))throw Error("createAnswer failed");if(!this._remoteDescription)throw Error("wrong state");let Y=new rq;zS("answer",Y);for(let J of this._remoteDescription.media){let Z,V;if(["audio","video"].includes(J.kind)){let U=W.find((Q)=>Q.mid===J.rtp.muxId);if(!U)throw Error(`Transceiver with mid=${J.rtp.muxId} not found`);V=this.createMediaDescriptionForTransceiver(U,a2(U.direction,U.offerDirection)),Z=U.dtlsTransport}else if(J.kind==="application"){if(!G||!G.mid)throw Error("sctpTransport not found");V=this.createMediaDescriptionForSctp(G),Z=G.dtlsTransport}else throw Error("invalid kind");if(V.dtlsParams)if(Z.role==="auto")V.dtlsParams.role="client";else V.dtlsParams.role=Z.role;if(J.simulcastParameters&&J.simulcastParameters.length>0)V.simulcastParameters=J.simulcastParameters.map((U)=>({...U,direction:U.direction==="send"?"recv":"send"}));Y.media.push(V)}if(this.bundlePolicy!=="disable"){let J=new oV("BUNDLE",[]);for(let Z of Y.media)if(Z.rtp.muxId)J.items.push(Z.rtp.muxId);Y.group.push(J)}return Y}setLocalDescription(W){if(this.currentLocalDescription=W,W.type==="answer")this.pendingLocalDescription=void 0;else this.pendingLocalDescription=W}setRemoteDescription(W,G){if(!W.sdp||!W.type||W.type==="rollback"||W.type==="pranswer")throw Error("invalid sessionDescription");let X=this.parseSdp({sdp:W.sdp,isLocal:!1,signalingState:G,type:W.type});if(X.type==="answer")this.currentRemoteDescription=X,this.pendingRemoteDescription=void 0;else this.pendingRemoteDescription=X;return X}registerMid(W){this.seenMid.add(W)}get remoteIsBundled(){let W=this._remoteDescription;if(!W)return;return W.group.find((X)=>X.semantic==="BUNDLE"&&this.bundlePolicy!=="disable")}setLocal(W,G,X){let Y=new Map(G.map((V)=>[V?.mLineIndex,V])),J=G.find((V)=>V?.dtlsTransport)?.dtlsTransport??X?.dtlsTransport;W.media.filter((V)=>["audio","video"].includes(V.kind)).forEach((V,U)=>{let N=(Y.get(U)??G[U])?.dtlsTransport??J;if(!N)throw Error(`dtls transport not found for media index ${U}`);this.addTransportDescription(V,N)});let Z=W.media.find((V)=>V.kind==="application");if(X&&Z)this.addTransportDescription(Z,X.dtlsTransport);this.setLocalDescription(W)}},bV=M1("werift:packages/webrtc/src/transport/secureTransportManager.ts"),dr=class{connectionState="new";iceConnectionState="new";iceGatheringState="new";certificate;iceGatheringStateChange=new c0;iceConnectionStateChange=new c0;onIceCandidate=new c0;connectionStateChange=new c0;config;transceiverManager;sctpManager;constructor({config:W,transceiverManager:G,sctpManager:X}){if(this.config=W,this.transceiverManager=G,this.sctpManager=X,this.config.dtls){let{keys:Y}=this.config.dtls;if(Y)this.setupCertificate(Y)}}get dtlsTransports(){return[...this.transceiverManager.getTransceivers().map((G)=>G?.dtlsTransport),this.sctpManager.sctpTransport?.dtlsTransport].filter((G)=>G!=null).reduce((G,X)=>{if(!G.map((Y)=>Y.id).includes(X.id))G.push(X);return G},[])}get iceTransports(){return this.dtlsTransports.map((W)=>W.iceTransport)}setupCertificate(W){this.certificate=new e2(W.keyPem,W.certPem,W.signatureHash)}createTransport(){let W=this.iceTransports.find((J)=>J.state!=="closed"),G=new Nr({...di(this.config.iceServers),forceTurn:this.config.iceTransportPolicy==="relay",portRange:this.config.icePortRange,interfaceAddresses:this.config.iceInterfaceAddresses,additionalHostAddresses:this.config.iceAdditionalHostAddresses,filterStunResponse:this.config.iceFilterStunResponse,filterCandidatePair:this.config.iceFilterCandidatePair,localPasswordPrefix:this.config.icePasswordPrefix,useIpv4:this.config.iceUseIpv4,useIpv6:this.config.iceUseIpv6,turnTransport:this.config.forceTurnTCP===!0?"tcp":"udp",useLinkLocalAddress:this.config.iceUseLinkLocalAddress});if(W)G.connection.localUsername=W.connection.localUsername,G.connection.localPassword=W.connection.localPassword;G.onGatheringStateChange.subscribe(()=>{this.updateIceGatheringState()}),this.updateIceGatheringState();let X=new Qr(G);return X.onStateChange.subscribe(()=>{this.updateIceConnectionState()}),new eF(this.config,X,this.certificate,or)}handleNewIceCandidate({candidate:W,media:G,remoteIsBundled:X,transceiver:Y,sctpTransport:J,bundlePolicy:Z}){if(Z==="max-bundle"||X){if(W.sdpMLineIndex=0,G)W.sdpMid=G.rtp.muxId}else{if(Y)W.sdpMLineIndex=Y.mLineIndex,W.sdpMid=Y.mid;if(J)W.sdpMLineIndex=J.mLineIndex,W.sdpMid=J.mid}if(W.foundation&&!W.foundation.startsWith("candidate:"))W.foundation="candidate:"+W.foundation;return this.onIceCandidate.execute(W),W}async addIceCandidate(W,G){let X=Wx.fromJSON(G);if(!X)return;let Y;if(typeof X.sdpMid==="number")Y=this.getTransportByMid(X.sdpMid);if(!Y&&typeof X.sdpMLineIndex==="number")Y=this.getTransportByMLineIndex(W,X.sdpMLineIndex);if(!Y)Y=this.iceTransports[0];if(Y)await Y.addRemoteCandidate(X);else bV("iceTransport not found for candidate",X)}getTransportByMid(W){let G,X=this.transceiverManager.getTransceivers().find((Y)=>Y.mid===W);if(X)G=X.dtlsTransport.iceTransport;else if(!G&&this.sctpManager.sctpTransport?.mid===W)G=this.sctpManager.sctpTransport.dtlsTransport.iceTransport;return G}getTransportByMLineIndex(W,G){let X=W.media[G];if(!X)return;return this.getTransportByMid(X.rtp.muxId)}restartIce(){for(let W of this.iceTransports)W.restart()}setLocalRole({type:W,role:G}){for(let X of this.dtlsTransports){let Y=X.iceTransport;if(W==="offer")Y.connection.iceControlling=!0;else Y.connection.iceControlling=!1;if(Y.connection.remoteIsLite)Y.connection.iceControlling=!0;if(W==="answer"){if(G)X.role=G}}}updateIceGatheringState(){let W=this.iceTransports;function G(...Y){return W.filter((J)=>Y.includes(J.gatheringState)).length===W.length}let X;if(W.length&&G("complete"))X="complete";else if(!W.length||G("new","complete"))X="new";else if(W.map((Y)=>Y.gatheringState).includes("gathering"))X="gathering";else X="new";if(this.iceGatheringState===X)return;this.iceGatheringState=X,this.iceGatheringStateChange.execute(X)}updateIceConnectionState(){let W=this.iceTransports,G;function X(...J){return W.filter((Z)=>J.includes(Z.state)).length===W.length}function Y(...J){return W.some((Z)=>J.includes(Z.state))}if(this.connectionState==="closed")G="closed";else if(Y("failed"))G="failed";else if(Y("disconnected"))G="disconnected";else if(X("new","closed"))G="new";else if(Y("new","checking"))G="checking";else if(X("completed","closed"))G="completed";else if(X("connected","completed","closed"))G="connected";else G="new";if(this.iceConnectionState===G)return;bV("iceConnectionStateChange",G),this.iceConnectionState=G,this.iceConnectionStateChange.execute(G)}async gatherCandidates(W){let G=this.iceTransports.find((X)=>X.state==="connected"||X.state==="completed");if(W&&G)bV("skipping ICE gathering for bundled connection");else await Promise.allSettled(this.iceTransports.map((X)=>X.gather())).catch((X)=>{bV("gatherCandidates failed",X)})}setConnectionState(W){bV("connectionStateChange",W),this.connectionState=W,this.connectionStateChange.execute(W)}async getStats(){let W=[];for(let G of this.dtlsTransports){let X=await G.getStats();if(X)W.push(...X)}return W}async ensureCerts(){if(!this.certificate)this.certificate=await eF.SetupCertificate();for(let W of this.dtlsTransports)W.localCertificate=this.certificate}async close(){this.setConnectionState("closed"),await Promise.allSettled([...this.dtlsTransports.map((W)=>W.stop())]),this.iceGatheringStateChange.allUnsubscribe(),this.iceConnectionStateChange.allUnsubscribe(),this.onIceCandidate.allUnsubscribe(),this.connectionStateChange.allUnsubscribe()}},or=[sF.SRTP_AEAD_AES_128_GCM,sF.SRTP_AES128_CM_HMAC_SHA1_80],X7=M1("werift:packages/webrtc/src/peerConnection.ts"),Ix=class extends NO{cname=fr().toString();config=wx();signalingState="stable";negotiationneeded=!1;needRestart=!1;router=new gr;sdpManager;transceiverManager;sctpManager;secureManager;isClosed=!1;shouldNegotiationneeded=!1;remoteBundleNegotiated=!1;iceGatheringStateChange=new c0;iceConnectionStateChange=new c0;signalingStateChange=new c0;connectionStateChange=new c0;onDataChannel=new c0;onRemoteTransceiverAdded=new c0;onTransceiverAdded=new c0;onIceCandidate=new c0;onNegotiationneeded=new c0;onTrack=new c0;ondatachannel;onicecandidate;onicecandidateerror;onicegatheringstatechange;onnegotiationneeded;onsignalingstatechange;ontrack;onconnectionstatechange;oniceconnectionstatechange;constructor(W={}){super();this.setConfiguration(W),this.sdpManager=new lr({cname:this.cname,bundlePolicy:this.config.bundlePolicy}),this.transceiverManager=new ir(this.cname,this.config,this.router),this.transceiverManager.onTransceiverAdded.pipe(this.onTransceiverAdded),this.transceiverManager.onRemoteTransceiverAdded.pipe(this.onRemoteTransceiverAdded),this.transceiverManager.onTrack.subscribe(({track:G,stream:X,transceiver:Y})=>{let J={track:G,streams:[X],transceiver:Y,receiver:Y.receiver};if(this.onTrack.execute(G),this.emit("track",J),this.ontrack)this.ontrack(J)}),this.transceiverManager.onNegotiationNeeded.subscribe(()=>this.needNegotiation()),this.sctpManager=new cr,this.sctpManager.onDataChannel.subscribe((G)=>{this.onDataChannel.execute(G);let X={channel:G};this.ondatachannel?.(X),this.emit("datachannel",X)}),this.secureManager=new dr({config:this.config,sctpManager:this.sctpManager,transceiverManager:this.transceiverManager}),this.secureManager.iceGatheringStateChange.pipe(this.iceGatheringStateChange),this.secureManager.iceConnectionStateChange.subscribe((G)=>{if(G==="closed")this.close();this.iceConnectionStateChange.execute(G)}),this.secureManager.connectionStateChange.subscribe((G)=>{this.connectionStateChange.execute(G),this.onconnectionstatechange?.(),this.emit("connectionstatechange")}),this.secureManager.onIceCandidate.subscribe((G)=>{let X=G?G.toJSON():void 0;this.onIceCandidate.execute(X),this.onicecandidate?.({candidate:X}),this.emit("icecandidate",{candidate:X})})}get connectionState(){return this.secureManager.connectionState}get iceConnectionState(){return this.secureManager.iceConnectionState}get iceGathererState(){return this.secureManager.iceGatheringState}get iceGatheringState(){return this.secureManager.iceGatheringState}get dtlsTransports(){return this.secureManager.dtlsTransports}get sctpTransport(){return this.sctpManager.sctpTransport}get sctpRemotePort(){return this.sctpManager.sctpRemotePort}get iceTransports(){return this.secureManager.iceTransports}get extIdUriMap(){return this.router.extIdUriMap}get iceGeneration(){return this.iceTransports[0].connection.generation}get localDescription(){return this.sdpManager.localDescription}get remoteDescription(){return this.sdpManager.remoteDescription}get remoteIsBundled(){return this.sdpManager.remoteIsBundled}get _localDescription(){return this.sdpManager._localDescription}get _remoteDescription(){return this.sdpManager._remoteDescription}getTransceivers(){return this.transceiverManager.getTransceivers()}getSenders(){return this.transceiverManager.getSenders()}getReceivers(){return this.transceiverManager.getReceivers()}setConfiguration(W){if(oi(this.config,W),this.config.icePortRange){let[G,X]=this.config.icePortRange;if(G===X)throw Error("should not be same value");if(G>=X)throw Error("The min must be less than max")}if(!Number.isInteger(this.config.maxMessageSize)||this.config.maxMessageSize<0)throw Error("maxMessageSize must be a non-negative integer");if(this.sctpManager?.sctpTransport)this.sctpManager.sctpTransport.maxMessageSize=this.config.maxMessageSize;for(let[G,X]of lF([...this.config.codecs.audio||[],...this.config.codecs.video||[]])){if(X.payloadType!=null)continue;switch(X.payloadType=96+G,X.name.toLowerCase()){case"rtx":X.parameters=`apt=${X.payloadType-1}`;break;case"red":if(X.contentType==="audio"){let Y=X.payloadType+1;X.parameters=`${Y}/${Y}`,X.payloadType=63}break}}[...this.config.headerExtensions.audio||[],...this.config.headerExtensions.video||[]].forEach((G,X)=>{G.id=1+X})}getConfiguration(){return this.config}async createOffer({iceRestart:W}={}){if(W||this.needRestart)this.needRestart=!1,this.secureManager.restartIce();await this.secureManager.ensureCerts();for(let X of this.transceiverManager.getTransceivers()){if(X.codecs.length===0)this.transceiverManager.assignTransceiverCodecs(X);if(X.headerExtensions.length===0)X.headerExtensions=this.config.headerExtensions[X.kind]??[]}return this.sdpManager.buildOfferSdp(this.transceiverManager.getTransceivers(),this.sctpTransport).toJSON()}createSctpTransport(){let W=this.sctpManager.createSctpTransport(this.config.maxMessageSize),G=this.findOrCreateTransport();return W.setDtlsTransport(G),W}createDataChannel(W,G={}){if(!this.sctpTransport)this.createSctpTransport(),this.needNegotiation();let X=this.sctpManager.createDataChannel(W,G);if(!X.sctp.dtlsTransport){let Y=this.findOrCreateTransport();X.sctp.setDtlsTransport(Y)}return X}removeTrack(W){if(this.isClosed)throw Error("peer closed");this.transceiverManager.removeTrack(W),this.needNegotiation()}needNegotiation=async()=>{if(this.shouldNegotiationneeded=!0,this.negotiationneeded||this.signalingState!=="stable")return;this.shouldNegotiationneeded=!1,setImmediate(()=>{if(this.negotiationneeded=!0,this.onNegotiationneeded.execute(),this.onnegotiationneeded)this.onnegotiationneeded({})})};findOrCreateTransport(){let W=this.dtlsTransports.find((J)=>J.state!=="closed"),G=W?.iceTransport;if(this.sdpManager.bundlePolicy==="max-bundle"||this.sdpManager.bundlePolicy!=="disable"&&(this.remoteIsBundled||this.remoteBundleNegotiated)){if(W)return W}let X=this.secureManager.createTransport();X.onRtp.subscribe((J)=>{this.router.routeRtp(J)}),X.onRtcp.subscribe((J)=>{this.router.routeRtcp(J)});let Y=X.iceTransport;return Y.onNegotiationNeeded.subscribe(()=>{this.needNegotiation()}),Y.onIceCandidate.subscribe((J)=>{if(!this.localDescription){X7("localDescription not found when ice candidate was gathered");return}if(!J){if(this.sdpManager.setLocal(this._localDescription,this.transceiverManager.getTransceivers(),this.sctpTransport),this.onIceCandidate.execute(void 0),this.onicecandidate)this.onicecandidate({candidate:void 0});this.emit("icecandidate",{candidate:void 0});return}if(!this._localDescription){X7("localDescription not found when ice candidate was gathered");return}this.secureManager.handleNewIceCandidate({candidate:J,bundlePolicy:this.sdpManager.bundlePolicy,remoteIsBundled:!!this.sdpManager.remoteIsBundled,media:this._localDescription.media[0],transceiver:this.transceiverManager.getTransceivers().find((Z)=>Z?.dtlsTransport?.iceTransport.id===Y.id),sctpTransport:this.sctpTransport?.dtlsTransport.iceTransport.id===Y.id?this.sctpTransport:void 0})}),X}async setLocalDescription(W){W=W??(["stable","have-local-offer","have-remote-pranswer"].includes(this.signalingState)?await this.createOffer():await this.createAnswer());let X=this.sdpManager.parseSdp({sdp:W.sdp,isLocal:!0,signalingState:this.signalingState,type:W.type});if(X.type==="offer")this.setSignalingState("have-local-offer");else if(X.type==="answer")this.setSignalingState("stable");for(let[J,Z]of lF(X.media)){let V=Z.rtp.muxId;if(this.sdpManager.registerMid(V),["audio","video"].includes(Z.kind)){let U=this.transceiverManager.getTransceiverByMLineIndex(J);if(U)U.mid=V}if(Z.kind==="application"&&this.sctpTransport)this.sctpTransport.mid=V}let Y=X.media.find((J)=>J.dtlsParams)?.dtlsParams?.role;if(this.secureManager.setLocalRole({type:X.type,role:Y}),["answer","pranswer"].includes(X.type))for(let J of this.transceiverManager.getTransceivers()){let Z=a2(J.direction,J.offerDirection);J.setCurrentDirection(Z)}if(this.sdpManager.setLocal(X,this.transceiverManager.getTransceivers(),this.sctpTransport),await this.gatherCandidates().catch((J)=>{X7("gatherCandidates failed",J)}),X.type==="answer")this.connect().catch((J)=>{X7("connect failed",J),this.secureManager.setConnectionState("failed")});if(this.sdpManager.setLocal(X,this.transceiverManager.getTransceivers(),this.sctpTransport),this.shouldNegotiationneeded)this.needNegotiation();return X}async gatherCandidates(){await this.secureManager.gatherCandidates(!!this.sdpManager.remoteIsBundled)}async addIceCandidate(W){let G=this.sdpManager.buildOfferSdp(this.transceiverManager.getTransceivers(),this.sctpTransport);await this.secureManager.addIceCandidate(G,W)}async connect(){if(X7("start connect"),(await Promise.allSettled(this.dtlsTransports.map(async(G)=>{let{iceTransport:X}=G;if(X.state==="connected")return;let Y=()=>G.state==="connected";if(Y())return;if(this.secureManager.setConnectionState("connecting"),await X.start().catch((J)=>{throw X7("iceTransport.start failed",J),J}),Y())return;if(await G.start().catch((J)=>{throw X7("dtlsTransport.start failed",J),J}),this.sctpTransport&&this.sctpTransport.dtlsTransport.id===G.id)await this.sctpManager.connectSctp()}))).find((G)=>G.status==="rejected"))this.secureManager.setConnectionState("failed");else this.secureManager.setConnectionState("connected")}restartIce(){this.needRestart=!0,this.needNegotiation()}async setRemoteDescription(W){if(W instanceof rq)W=W.toSdp();let G=this.sdpManager.setRemoteDescription(W,this.signalingState);if(G.group.some((V)=>V.semantic==="BUNDLE"&&V.items.length>0))this.remoteBundleNegotiated=!0;let X,Y=(V,U)=>V.kind===U.kind&&[void 0,U.rtp.muxId].includes(V.mid),J=G.media.map((V,U)=>{let Q;if(["audio","video"].includes(V.kind)){let q=this.transceiverManager.getTransceivers().find((A)=>Y(A,V));if(!q)q=this.addTransceiver(V.kind,{direction:"recvonly"}),q.mid=V.rtp.muxId,this.onRemoteTransceiverAdded.execute(q);else if(q.direction==="inactive"&&q.stopping){if(q.stopped=!0,W.type==="answer")q.setCurrentDirection("inactive");return}if(this.sdpManager.remoteIsBundled)if(!X)X=q.dtlsTransport;else q.setDtlsTransport(X);Q=q.dtlsTransport,this.transceiverManager.setRemoteRTP(q,V,G.type,U)}else if(V.kind==="application"){let q=this.sctpTransport;if(!q)q=this.createSctpTransport(),q.mid=V.rtp.muxId;if(this.sdpManager.remoteIsBundled)if(!X)X=q.dtlsTransport;else q.setDtlsTransport(X);Q=q.dtlsTransport,this.sctpManager.setRemoteSCTP(V,U)}else throw Error("invalid media kind");let N=Q.iceTransport;if(V.iceParams){let q=!!this.sdpManager.inactiveRemoteMedia;if(N.setRemoteParams(V.iceParams,q),V.iceParams?.iceLite)N.connection.iceControlling=!0}if(V.dtlsParams)Q.setRemoteParams(V.dtlsParams);if(V.iceCandidates.forEach(N.addRemoteCandidate),V.iceCandidatesComplete)N.addRemoteCandidate(void 0);if(G.type==="answer"&&V.dtlsParams?.role)Q.role=V.dtlsParams.role==="client"?"server":"client";return N});J=J.filter((V)=>!!V);let Z=this.transceiverManager.getTransceivers().filter((V)=>G.media.find((U)=>Y(V,U))==null);if(W.type==="answer")for(let V of Z)V.stop(),V.stopped=!0;if(G.type==="offer")this.setSignalingState("have-remote-offer");else if(G.type==="answer")this.setSignalingState("stable");if(G.type==="answer")X7("caller start connect"),this.connect().catch((V)=>{X7("connect failed",V),this.secureManager.setConnectionState("failed")});if(this.negotiationneeded=!1,this.shouldNegotiationneeded)this.needNegotiation()}addTransceiver(W,G={}){let X=this.findOrCreateTransport(),Y=this.transceiverManager.addTransceiver(W,X,G);return this.secureManager.updateIceConnectionState(),this.needNegotiation(),Y}addTrack(W,G){if(this.isClosed)throw Error("is closed");let X=this.transceiverManager.addTrack(W,G);if(!X.dtlsTransport){let Y=this.findOrCreateTransport();X.setDtlsTransport(Y)}return this.needNegotiation(),X.sender}async createAnswer(){return this.assertNotClosed(),await this.secureManager.ensureCerts(),this.sdpManager.buildAnswerSdp({transceivers:this.transceiverManager.getTransceivers(),sctpTransport:this.sctpTransport,signalingState:this.signalingState}).toJSON()}assertNotClosed(){if(this.isClosed)throw Error("RTCPeerConnection is closed")}setSignalingState(W){if(X7("signalingStateChange",W),this.signalingState=W,this.signalingStateChange.execute(W),this.onsignalingstatechange)this.onsignalingstatechange({})}createPeerConnectionStats(){let W=$G();return{type:"peer-connection",id:U8("peer-connection"),timestamp:W,dataChannelsOpened:this.sctpManager.dataChannelsOpened,dataChannelsClosed:this.sctpManager.dataChannelsClosed}}async getStats(W){let G=[];G.push(this.createPeerConnectionStats());let X=await this.transceiverManager.getStats(W);G.push(...X);let Y=await this.secureManager.getStats();if(G.push(...Y),this.sctpTransport){let J=await this.sctpManager.getStats();if(J)G.push(...J)}return new yi(G)}async close(){if(this.isClosed)return;this.isClosed=!0,this.setSignalingState("closed"),this.transceiverManager.close(),await this.secureManager.close(),await this.sctpManager.close(),this.onDataChannel.allUnsubscribe(),this.iceGatheringStateChange.allUnsubscribe(),this.iceConnectionStateChange.allUnsubscribe(),this.signalingStateChange.allUnsubscribe(),this.onTransceiverAdded.allUnsubscribe(),this.onRemoteTransceiverAdded.allUnsubscribe(),this.onIceCandidate.allUnsubscribe(),X7("peerConnection closed")}},DS=(W,G)=>W.find((X)=>X.mimeType.toLowerCase()===G.mimeType.toLowerCase())?G:void 0;function wx(){return{codecs:{audio:[m2(),f2()],video:[b2()]},headerExtensions:{audio:[],video:[]},iceTransportPolicy:"all",iceServers:[{urls:"stun:stun.l.google.com:19302"}],icePortRange:void 0,iceInterfaceAddresses:void 0,iceAdditionalHostAddresses:void 0,iceUseIpv4:!0,iceUseIpv6:!0,iceFilterStunResponse:void 0,iceFilterCandidatePair:void 0,icePasswordPrefix:void 0,iceUseLinkLocalAddress:void 0,dtls:{},bundlePolicy:"max-compat",debug:{},midSuffix:!1,forceTurnTCP:!1,maxMessageSize:pV}}var gA0=wx(),nr=M1("werift:packages/webrtc/src/media/rtpTransceiverManager.ts"),ir=class{constructor(W,G,X){this.cname=W,this.config=G,this.router=X}transceivers=[];onTransceiverAdded=new c0;onRemoteTransceiverAdded=new c0;onTrack=new c0;onNegotiationNeeded=new c0;getTransceivers(){return this.transceivers}getSenders(){return this.getTransceivers().map((W)=>W.sender)}getReceivers(){return this.getTransceivers().map((W)=>W.receiver)}getTransceiverByMLineIndex(W){return this.transceivers.find((G)=>G.mLineIndex===W)}pushTransceiver(W){this.transceivers.push(W)}replaceTransceiver(W,G){this.transceivers[G]=W}addTransceiver(W,G,X={}){let Y=typeof W==="string"?W:W.kind,J=X.direction||"sendrecv",Z=new mr(W),V=new zx(this.config,Y,Z.ssrc),U=new vi(Y,G,V,Z,J);U.options=X,this.router.registerRtpSender(U.sender);let Q=this.transceivers.findIndex((q)=>q.currentDirection==="inactive"&&!q.usedForSender),N=this.transceivers.find((q)=>q.currentDirection==="inactive"&&!q.usedForSender);if(Q>-1&&N)this.replaceTransceiver(U,Q),U.mLineIndex=N.mLineIndex,U.mid=N.mid,N.setCurrentDirection(void 0);else this.pushTransceiver(U);return this.onTransceiverAdded.execute(U),U}addTrack(W,G){if(this.getSenders().find((J)=>J.track?.uuid===W.uuid))throw Error("Track already added");let X=this.transceivers.find((J)=>J.sender.track==null&&J.kind===W.kind&&cq.includes(J.direction)===!0);if(X)return X.sender.registerTrack(W),X;let Y=this.transceivers.find((J)=>J.sender.track==null&&J.kind===W.kind&&cq.includes(J.direction)===!1&&!J.usedForSender);if(Y){switch(Y.sender.registerTrack(W),Y.direction){case"recvonly":Y.setDirection("sendrecv");break;case"inactive":Y.setDirection("sendonly");break}return Y}else return this.addTransceiver(W,void 0,{direction:"sendrecv"})}removeTrack(W){if(!this.getSenders().find(({ssrc:X})=>W.ssrc===X))throw Error("Sender does not exist");let G=this.transceivers.find(({sender:{ssrc:X}})=>W.ssrc===X);if(!G)throw Error("No matching transceiver found");if(W.stop(),G.currentDirection==="recvonly"){this.onNegotiationNeeded.execute();return}if(G.stopping||G.stopped)G.setDirection("inactive");else if(G.direction==="sendrecv")G.setDirection("recvonly");else if(G.direction==="sendonly"||G.direction==="recvonly")G.setDirection("inactive")}assignTransceiverCodecs(W){let G=this.config.codecs[W.kind].filter((X)=>{switch(X.direction){case"recvonly":{if(_i.includes(W.direction))return!0;return!1}case"sendonly":{if(cq.includes(W.direction))return!0;return!1}case"sendrecv":{if([o2,d2,l2].includes(W.direction))return!0;return!1}case"all":return!0;default:return!1}});W.codecs=G}getLocalRtpParams(W){if(W.mid==null)throw Error("mid not assigned");return{codecs:W.codecs,muxId:W.mid,headerExtensions:W.headerExtensions,rtcp:{cname:this.cname,ssrc:W.sender.ssrc,mux:!0}}}getRemoteRtpParams(W,G){return{muxId:W.rtp.muxId,rtcp:W.rtp.rtcp,codecs:G.codecs,headerExtensions:G.headerExtensions,encodings:Object.values(G.codecs.reduce((Y,J)=>{if(J.name.toLowerCase()==="rtx"){let Z=HH(J.parameters??""),V=Y[Z.apt];if(V&&W.ssrc.length===2)V.rtx=new Ci({ssrc:W.ssrc[1].ssrc});return Y}return Y[J.payloadType]=new Ti({ssrc:W.ssrc[0]?.ssrc,payloadType:J.payloadType}),Y},{}))}}setRemoteRTP(W,G,X,Y){if(!W.mid)W.mid=G.rtp.muxId;if(W.mLineIndex=Y,W.codecs=G.rtp.codecs.filter((U)=>{let Q=this.config.codecs[G.kind]||[],N=DS(Q,U);if(!N)return!1;if(N?.name.toLowerCase()==="rtx"){let A=HH(N.parameters??"").apt,H=G.rtp.codecs.find((I)=>I.payloadType===A);if(!H)return!1;return!!DS(Q,H)}return!0}),nr("negotiated codecs",W.codecs),W.codecs.length===0)throw Error("negotiate codecs failed.");W.headerExtensions=G.rtp.headerExtensions.filter((U)=>(this.config.headerExtensions[G.kind]||[]).find((Q)=>Q.uri===U.uri));let J=G.direction??"inactive",Z=fi(J);if(["answer","pranswer"].includes(X))W.setCurrentDirection(Z);else W.offerDirection=Z;let V=this.getLocalRtpParams(W);if(W.sender.prepareSend(V),["recvonly","sendrecv"].includes(W.direction)){let U=this.getRemoteRtpParams(G,W);for(let Q of G.simulcastParameters)this.router.registerRtpReceiverByRid(W,Q,U);W.receiver.prepareReceive(U),this.router.registerRtpReceiverBySsrc(W,U)}if(["sendonly","sendrecv"].includes(J)){if(G.msid){let[U,Q]=G.msid.split(" ");W.receiver.remoteStreamId=U,W.receiver.remoteTrackId=Q}this.onTrack.execute({track:W.receiver.track,transceiver:W,stream:new ui({id:W.receiver.remoteStreamId,tracks:[W.receiver.track]})})}if(G.ssrc[0]?.ssrc)W.receiver.setupTWCC(G.ssrc[0].ssrc)}async getStats(W){let G=[];for(let X of this.transceivers){let Y=!W||X.sender.track===W||X.receiver.track===W;if(X.sender){let J=await X.sender.getStats();if(J)for(let Z of J)if(Z.type==="outbound-rtp"||Z.type==="media-source"){if(Y)G.push(Z)}else G.push(Z)}if(X.receiver){let J=await X.receiver.getStats();if(J)for(let Z of J)if(Z.type==="inbound-rtp"||Z.type==="remote-outbound-rtp"){if(Y)G.push(Z)}else G.push(Z)}if(Y){let J=X.getCodecStats();if(J)G.push(...J)}}return G}close(){for(let W of this.transceivers)W.receiver.stop(),W.sender.stop();this.onTransceiverAdded.allUnsubscribe(),this.onRemoteTransceiverAdded.allUnsubscribe(),this.onTrack.allUnsubscribe(),this.onNegotiationNeeded.allUnsubscribe()}};class HO extends Ix{toJSON(){return{}}createDataChannel(...W){let G=super.createDataChannel(...W);try{G.toJSON=()=>({})}catch{}return G}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var dY={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),n:BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),h:BigInt(1),a:BigInt(0),b:BigInt(7),Gx:BigInt("0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"),Gy:BigInt("0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8")},rr={beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),basises:[[BigInt("0x3086d221a7d46bcde86c90e49284eb15"),-BigInt("0xe4437ed6010e88286f547fa90abfe4c3")],[BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),BigInt("0x3086d221a7d46bcde86c90e49284eb15")]]},ar=BigInt(0),jx=BigInt(1),AO=BigInt(2);function sr(W){let G=dY.p,X=BigInt(3),Y=BigInt(6),J=BigInt(11),Z=BigInt(22),V=BigInt(23),U=BigInt(44),Q=BigInt(88),N=W*W*W%G,q=N*N*W%G,A=Q5(q,X,G)*q%G,H=Q5(A,X,G)*q%G,I=Q5(H,AO,G)*N%G,w=Q5(I,J,G)*I%G,O=Q5(w,Z,G)*w%G,T=Q5(O,U,G)*O%G,F=Q5(T,Q,G)*T%G,E=Q5(F,U,G)*O%G,g=Q5(E,X,G)*q%G,k=Q5(g,V,G)*w%G,f=Q5(k,Y,G)*N%G,l=Q5(f,AO,G);if(!CH.eql(CH.sqr(l),W))throw Error("Cannot find square root");return l}var CH=E5(dY.p,{sqrt:sr}),Dx=TY({...dY,Fp:CH,lowS:!0,endo:rr},OY),Kx={};function TH(W,...G){let X=Kx[W];if(X===void 0){let Y=OY(Aq(W));X=i9(Y,Y),Kx[W]=X}return OY(i9(X,...G))}var IO=(W)=>W.toBytes(!0).slice(1),oY=(()=>Dx.Point)(),wO=(W)=>W%AO===ar;function zO(W){let{Fn:G,BASE:X}=oY,Y=o6(G,W),J=X.multiply(Y);return{scalar:wO(J.y)?Y:G.neg(Y),bytes:IO(J)}}function Cx(W){let G=CH;if(!G.isValidNot0(W))throw Error("invalid x: Fail if x \u2265 p");let X=G.create(W*W),Y=G.create(X*W+BigInt(7)),J=G.sqrt(Y);if(!wO(J))J=G.neg(J);let Z=oY.fromAffine({x:W,y:J});return Z.assertValidity(),Z}var HU=E4;function Tx(...W){return oY.Fn.create(HU(TH("BIP0340/challenge",...W)))}function Ox(W){return zO(W).bytes}function tr(W,G,X=qG(32)){let{Fn:Y}=oY,J=$8("message",W),{bytes:Z,scalar:V}=zO(G),U=$8("auxRand",X,32),Q=Y.toBytes(V^HU(TH("BIP0340/aux",U))),N=TH("BIP0340/nonce",Q,Z,J),{bytes:q,scalar:A}=zO(N),H=Tx(q,Z,J),I=new Uint8Array(64);if(I.set(q,0),I.set(Y.toBytes(Y.create(A+H*V)),32),!Mx(I,J,Z))throw Error("sign: Invalid signature produced");return I}function Mx(W,G,X){let{Fn:Y,BASE:J}=oY,Z=$8("signature",W,64),V=$8("message",G),U=$8("publicKey",X,32);try{let Q=Cx(HU(U)),N=HU(Z.subarray(0,32));if(!RV(N,jx,dY.p))return!1;let q=HU(Z.subarray(32,64));if(!RV(q,jx,dY.n))return!1;let A=Tx(Y.toBytes(N),IO(Q),V),H=J.multiplyUnsafe(q).add(Q.multiplyUnsafe(Y.neg(A))),{x:I,y:w}=H.toAffine();if(H.is0()||!wO(w)||I!==N)return!1;return!0}catch(Q){return!1}}var Px=(()=>{let X=(J=qG(48))=>{return Kq(J,dY.n)};Dx.utils.randomSecretKey;function Y(J){let Z=X(J);return{secretKey:Z,publicKey:Ox(Z)}}return{keygen:Y,getPublicKey:Ox,sign:tr,verify:Mx,Point:oY,utils:{randomSecretKey:X,randomPrivateKey:X,taggedHash:TH,lift_x:Cx,pointToBytes:IO,numberToBytesBE:KY,bytesToNumberBE:E4,mod:U5},lengths:{secretKey:32,publicKey:32,publicKeyHasPrefix:!1,signature:64,seed:48}}})();var Rx=(W)=>Uint8Array.from(W.match(/.{2}/g).map((G)=>parseInt(G,16))),er=(W)=>[...W].map((G)=>G.toString(16).padStart(2,"0")).join(""),Wa=async(W)=>{try{if(typeof W.pubkey!=="string"||typeof W.sig!=="string"||typeof W.id!=="string")return!1;let G=new TextEncoder().encode(JSON.stringify([0,W.pubkey,W.created_at,W.kind,W.tags,W.content])),X=new Uint8Array(await crypto.subtle.digest("SHA-256",G));if(er(X)!==W.id)return!1;return Px.verify(Rx(W.sig),X,Rx(W.pubkey))}catch{return!1}},Ga=(W,G)=>{if(W.kinds&&!W.kinds.includes(G.kind))return!1;if(W.since&&G.created_at<W.since-60)return!1;if(W["#x"]){let X=(G.tags??[]).filter((Y)=>Y?.[0]==="x").map((Y)=>Y[1]);if(!W["#x"].some((Y)=>X.includes(Y)))return!1}return!0};function Lx({port:W=Number(process.env.PORT)||8080}={}){let G=new Map,X=0,Y=0,J=Bun.serve({port:W,fetch(Z,V){if(V.upgrade(Z))return;return Response.json({relay:"GenosSRV embedded relay",protocol:"nostr (ephemeral subset)",connections:G.size,events:X,dropped:Y})},websocket:{open(Z){G.set(Z,new Map)},close(Z){G.delete(Z)},async message(Z,V){let U;try{U=JSON.parse(String(V))}catch{return}if(!Array.isArray(U))return;let[Q,N,q]=U;if(Q==="REQ"&&typeof N==="string"&&q&&typeof q==="object"){G.get(Z)?.set(N,q),Z.send(JSON.stringify(["EOSE",N]));return}if(Q==="CLOSE"&&typeof N==="string"){G.get(Z)?.delete(N);return}if(Q==="EVENT"&&N&&typeof N==="object"){if(!await Wa(N)){Y++,Z.send(JSON.stringify(["OK",N.id??"",!1,"invalid: bad signature"]));return}X++,Z.send(JSON.stringify(["OK",N.id,!0,""]));for(let[A,H]of G)for(let[I,w]of H)if(Ga(w,N)){try{A.send(JSON.stringify(["EVENT",I,N]))}catch{}break}}}}});return console.info(`\uD83D\uDCE1 Relay listening on :${J.port} (ephemeral, schnorr-verified)`),{port:J.port,stats:()=>({connections:G.size,events:X,dropped:Y}),stop:()=>J.stop(!0)}}var MH="6.15.0";function Xa(W,G,X){let Y=G.split("|").map((Z)=>Z.trim());for(let Z=0;Z<Y.length;Z++)switch(G){case"any":return;case"bigint":case"boolean":case"number":case"string":if(typeof W===G)return}let J=Error(`invalid value for type ${G}`);throw J.code="INVALID_ARGUMENT",J.argument=`value.${X}`,J.value=W,J}async function n7(W){let G=Object.keys(W);return(await Promise.all(G.map((Y)=>Promise.resolve(W[Y])))).reduce((Y,J,Z)=>{return Y[G[Z]]=J,Y},{})}function q8(W,G,X){for(let Y in G){let J=G[Y],Z=X?X[Y]:null;if(Z)Xa(J,Z,Y);Object.defineProperty(W,Y,{enumerable:!0,value:J,writable:!1})}}function nY(W,G){if(W==null)return"null";if(G==null)G=new Set;if(typeof W==="object"){if(G.has(W))return"[Circular]";G.add(W)}if(Array.isArray(W))return"[ "+W.map((X)=>nY(X,G)).join(", ")+" ]";if(W instanceof Uint8Array){let Y="0x";for(let J=0;J<W.length;J++)Y+="0123456789abcdef"[W[J]>>4],Y+="0123456789abcdef"[W[J]&15];return Y}if(typeof W==="object"&&typeof W.toJSON==="function")return nY(W.toJSON(),G);switch(typeof W){case"boolean":case"number":case"symbol":return W.toString();case"bigint":return BigInt(W).toString();case"string":return JSON.stringify(W);case"object":{let X=Object.keys(W);return X.sort(),"{ "+X.map((Y)=>`${nY(Y,G)}: ${nY(W[Y],G)}`).join(", ")+" }"}}return"[ COULD NOT SERIALIZE ]"}function PH(W,G){return W&&W.code===G}function AU(W,G,X){let Y=W;{let Z=[];if(X){if("message"in X||"code"in X||"name"in X)throw Error(`value will overwrite populated values: ${nY(X)}`);for(let V in X){if(V==="shortMessage")continue;let U=X[V];Z.push(V+"="+nY(U))}}if(Z.push(`code=${G}`),Z.push(`version=${MH}`),Z.length)W+=" ("+Z.join(", ")+")"}let J;switch(G){case"INVALID_ARGUMENT":J=TypeError(W);break;case"NUMERIC_FAULT":case"BUFFER_OVERRUN":J=RangeError(W);break;default:J=Error(W)}if(q8(J,{code:G}),X)Object.assign(J,X);if(J.shortMessage==null)q8(J,{shortMessage:Y});return J}function X1(W,G,X,Y){if(!W)throw AU(G,X,Y)}function s(W,G,X,Y){X1(W,G,"INVALID_ARGUMENT",{argument:X,value:Y})}var Ya=["NFD","NFC","NFKD","NFKC"].reduce((W,G)=>{try{if("test".normalize(G)!=="test")throw Error("bad");if(G==="NFD"){let X=String.fromCharCode(233).normalize("NFD"),Y=String.fromCharCode(101,769);if(X!==Y)throw Error("broken")}W.push(G)}catch(X){}return W},[]);function iY(W){X1(Ya.indexOf(W)>=0,"platform missing String.prototype.normalize","UNSUPPORTED_OPERATION",{operation:"String.prototype.normalize",info:{form:W}})}function o4(W,G,X){if(X==null)X="";if(W!==G){let Y=X,J="new";if(X)Y+=".",J+=" "+X;X1(!1,`private constructor; use ${Y}from* methods`,"UNSUPPORTED_OPERATION",{operation:J})}}function Ex(W,G,X){if(W instanceof Uint8Array){if(X)return new Uint8Array(W);return W}if(typeof W==="string"&&W.match(/^0x(?:[0-9a-f][0-9a-f])*$/i)){let Y=new Uint8Array((W.length-2)/2),J=2;for(let Z=0;Z<Y.length;Z++)Y[Z]=parseInt(W.substring(J,J+2),16),J+=2;return Y}s(!1,"invalid BytesLike value",G||"value",W)}function E0(W,G){return Ex(W,G,!1)}function U7(W,G){return Ex(W,G,!0)}function R9(W,G){if(typeof W!=="string"||!W.match(/^0x[0-9A-Fa-f]*$/))return!1;if(typeof G==="number"&&W.length!==2+2*G)return!1;if(G===!0&&W.length%2!==0)return!1;return!0}function i7(W){return R9(W,!0)||W instanceof Uint8Array}var Bx="0123456789abcdef";function C0(W){let G=E0(W),X="0x";for(let Y=0;Y<G.length;Y++){let J=G[Y];X+=Bx[(J&240)>>4]+Bx[J&15]}return X}function W8(W){return"0x"+W.map((G)=>C0(G).substring(2)).join("")}function n4(W){if(R9(W,!0))return(W.length-2)/2;return E0(W).length}function rY(W,G,X){let Y=E0(W);if(X!=null&&X>Y.length)X1(!1,"cannot slice beyond data bounds","BUFFER_OVERRUN",{buffer:Y,length:Y.length,offset:X});return C0(Y.slice(G==null?0:G,X==null?Y.length:X))}function Ja(W,G,X){let Y=E0(W);X1(G>=Y.length,"padding exceeds data length","BUFFER_OVERRUN",{buffer:new Uint8Array(Y),length:G,offset:G+1});let J=new Uint8Array(G);if(J.fill(0),X)J.set(Y,G-Y.length);else J.set(Y,0);return C0(J)}function A5(W,G){return Ja(W,G,!0)}var jO=BigInt(0),FG=BigInt(1),aY=9007199254740991;function RH(W,G){let X=m1(W,"value"),Y=BigInt(a8(G,"width")),J=FG<<Y-FG;if(X<jO){X=-X,X1(X<=J,"too low","NUMERIC_FAULT",{operation:"toTwos",fault:"overflow",value:W});let Z=(FG<<Y)-FG;return(~X&Z)+FG}else X1(X<J,"too high","NUMERIC_FAULT",{operation:"toTwos",fault:"overflow",value:W});return X}function LH(W,G){let X=zU(W,"value"),Y=BigInt(a8(G,"bits"));return X&(FG<<Y)-FG}function m1(W,G){switch(typeof W){case"bigint":return W;case"number":return s(Number.isInteger(W),"underflow",G||"value",W),s(W>=-aY&&W<=aY,"overflow",G||"value",W),BigInt(W);case"string":try{if(W==="")throw Error("empty string");if(W[0]==="-"&&W[1]!=="-")return-BigInt(W.substring(1));return BigInt(W)}catch(X){s(!1,`invalid BigNumberish string: ${X.message}`,G||"value",W)}}s(!1,"invalid BigNumberish value",G||"value",W)}function zU(W,G){let X=m1(W,G);return X1(X>=jO,"unsigned value cannot be negative","NUMERIC_FAULT",{fault:"overflow",operation:"getUint",value:W}),X}var $x="0123456789abcdef";function sY(W){if(W instanceof Uint8Array){let G="0x0";for(let X of W)G+=$x[X>>4],G+=$x[X&15];return BigInt(G)}return m1(W)}function a8(W,G){switch(typeof W){case"bigint":return s(W>=-aY&&W<=aY,"overflow",G||"value",W),Number(W);case"number":return s(Number.isInteger(W),"underflow",G||"value",W),s(W>=-aY&&W<=aY,"overflow",G||"value",W),W;case"string":try{if(W==="")throw Error("empty string");return a8(BigInt(W),G)}catch(X){s(!1,`invalid numeric string: ${X.message}`,G||"value",W)}}s(!1,"invalid numeric value",G||"value",W)}function Q7(W,G){let Y=zU(W,"value").toString(16);if(G==null){if(Y.length%2)Y="0"+Y}else{let J=a8(G,"width");X1(J*2>=Y.length,`value exceeds width (${J} bytes)`,"NUMERIC_FAULT",{operation:"toBeHex",fault:"overflow",value:W});while(Y.length<J*2)Y="0"+Y}return"0x"+Y}function H8(W){let G=zU(W,"value");if(G===jO)return new Uint8Array([]);let X=G.toString(16);if(X.length%2)X="0"+X;let Y=new Uint8Array(X.length/2);for(let J=0;J<Y.length;J++){let Z=J*2;Y[J]=parseInt(X.substring(Z,Z+2),16)}return Y}function BH(W){let G=C0(i7(W)?W:H8(W)).substring(2);while(G.startsWith("0"))G=G.substring(1);if(G==="")G="0";return"0x"+G}var $H="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",EH=null;function Za(W){if(EH==null){EH={};for(let X=0;X<$H.length;X++)EH[$H[X]]=BigInt(X)}let G=EH[W];return s(G!=null,"invalid base58 value","letter",W),G}var Va=BigInt(0),KO=BigInt(58);function FH(W){let G=E0(W),X=sY(G),Y="";while(X)Y=$H[Number(X%KO)]+Y,X/=KO;for(let J=0;J<G.length;J++){if(G[J])break;Y=$H[0]+Y}return Y}function SH(W){let G=Va;for(let X=0;X<W.length;X++)G*=KO,G+=Za(W[X]);return G}function Ua(W,G,X,Y,J){s(!1,`invalid codepoint at offset ${G}; ${W}`,"bytes",X)}function Fx(W,G,X,Y,J){if(W==="BAD_PREFIX"||W==="UNEXPECTED_CONTINUE"){let Z=0;for(let V=G+1;V<X.length;V++){if(X[V]>>6!==2)break;Z++}return Z}if(W==="OVERRUN")return X.length-G-1;return 0}function Qa(W,G,X,Y,J){if(W==="OVERLONG")return s(typeof J==="number","invalid bad code point for replacement","badCodepoint",J),Y.push(J),0;return Y.push(65533),Fx(W,G,X,Y,J)}var Sx=Object.freeze({error:Ua,ignore:Fx,replace:Qa});function U9(W,G){if(s(typeof W==="string","invalid string value","str",W),G!=null)iY(G),W=W.normalize(G);let X=[];for(let Y=0;Y<W.length;Y++){let J=W.charCodeAt(Y);if(J<128)X.push(J);else if(J<2048)X.push(J>>6|192),X.push(J&63|128);else if((J&64512)==55296){Y++;let Z=W.charCodeAt(Y);s(Y<W.length&&(Z&64512)===56320,"invalid surrogate pair","str",W);let V=65536+((J&1023)<<10)+(Z&1023);X.push(V>>18|240),X.push(V>>12&63|128),X.push(V>>6&63|128),X.push(V&63|128)}else X.push(J>>12|224),X.push(J>>6&63|128),X.push(J&63|128)}return new Uint8Array(X)}function Na(W){let G=W.toString(16);while(G.length<2)G="0"+G;return"0x"+G}function xx(W,G,X){let Y=0;for(let J=0;J<X;J++)Y=Y*256+W[G+J];return Y}function kx(W,G,X,Y){let J=[];while(X<G+1+Y){let Z=_x(W,X);J.push(Z.result),X+=Z.consumed,X1(X<=G+1+Y,"child data too short","BUFFER_OVERRUN",{buffer:W,length:Y,offset:G})}return{consumed:1+Y,result:J}}function _x(W,G){X1(W.length!==0,"data too short","BUFFER_OVERRUN",{buffer:W,length:0,offset:1});let X=(Y)=>{X1(Y<=W.length,"data short segment too short","BUFFER_OVERRUN",{buffer:W,length:W.length,offset:Y})};if(W[G]>=248){let Y=W[G]-247;X(G+1+Y);let J=xx(W,G+1,Y);return X(G+1+Y+J),kx(W,G,G+1+Y,Y+J)}else if(W[G]>=192){let Y=W[G]-192;return X(G+1+Y),kx(W,G,G+1,Y)}else if(W[G]>=184){let Y=W[G]-183;X(G+1+Y);let J=xx(W,G+1,Y);X(G+1+Y+J);let Z=C0(W.slice(G+1+Y,G+1+Y+J));return{consumed:1+Y+J,result:Z}}else if(W[G]>=128){let Y=W[G]-128;X(G+1+Y);let J=C0(W.slice(G+1,G+1+Y));return{consumed:1+Y,result:J}}return{consumed:1,result:Na(W[G])}}function GW(W){let G=E0(W,"data"),X=_x(G,0);return s(X.consumed===G.length,"unexpected junk after rlp payload","data",W),X.result}function yx(W){let G=[];while(W)G.unshift(W&255),W>>=8;return G}function gx(W){if(Array.isArray(W)){let Y=[];if(W.forEach(function(Z){Y=Y.concat(gx(Z))}),Y.length<=55)return Y.unshift(192+Y.length),Y;let J=yx(Y.length);return J.unshift(247+J.length),J.concat(Y)}let G=Array.prototype.slice.call(E0(W,"object"));if(G.length===1&&G[0]<=127)return G;else if(G.length<=55)return G.unshift(128+G.length),G;let X=yx(G.length);return X.unshift(183+X.length),X.concat(G)}var vx="0123456789abcdef";function F5(W){let G="0x";for(let X of gx(W))G+=vx[X>>4],G+=vx[X&15];return G}function xH(W){let G=E0(W,"randomBytes");G[6]=G[6]&15|64,G[8]=G[8]&63|128;let X=C0(G);return[X.substring(2,10),X.substring(10,14),X.substring(14,18),X.substring(18,22),X.substring(22,34)].join("-")}import{createHash as OO,createHmac as ux,pbkdf2Sync as hx,randomBytes as bx}from"crypto";var mx=!1,fx=function(W,G,X){return ux(W,G).update(X).digest()},px=fx;function XW(W,G,X){let Y=E0(G,"key"),J=E0(X,"data");return C0(px(W,Y,J))}XW._=fx;XW.lock=function(){mx=!0};XW.register=function(W){if(mx)throw Error("computeHmac is locked");px=W};Object.freeze(XW);function L9(W){if(!Number.isSafeInteger(W)||W<0)throw Error(`Wrong positive integer: ${W}`)}function IU(W,...G){if(!(W instanceof Uint8Array))throw Error("Expected Uint8Array");if(G.length>0&&!G.includes(W.length))throw Error(`Expected Uint8Array of length ${G}, not of length=${W.length}`)}function kH(W){if(typeof W!=="function"||typeof W.create!=="function")throw Error("Hash should be wrapped by utils.wrapConstructor");L9(W.outputLen),L9(W.blockLen)}function i4(W,G=!0){if(W.destroyed)throw Error("Hash instance has been destroyed");if(G&&W.finished)throw Error("Hash#digest() has already been called")}function _H(W,G){IU(W);let X=G.outputLen;if(W.length<X)throw Error(`digestInto() expects output buffer of length at least ${X}`)}var yH=BigInt(4294967295),cx=BigInt(32);function Oa(W,G=!1){if(G)return{h:Number(W&yH),l:Number(W>>cx&yH)};return{h:Number(W>>cx&yH)|0,l:Number(W&yH)|0}}function lx(W,G=!1){let X=new Uint32Array(W.length),Y=new Uint32Array(W.length);for(let J=0;J<W.length;J++){let{h:Z,l:V}=Oa(W[J],G);[X[J],Y[J]]=[Z,V]}return[X,Y]}var dx=(W,G,X)=>W<<X|G>>>32-X,ox=(W,G,X)=>G<<X|W>>>32-X,nx=(W,G,X)=>G<<X-32|W>>>64-X,ix=(W,G,X)=>W<<X-32|G>>>64-X;import*as wU from"crypto";var vH=wU&&typeof wU==="object"&&"webcrypto"in wU?wU.webcrypto:void 0;/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */var rx=(W)=>W instanceof Uint8Array;var tY=(W)=>new Uint32Array(W.buffer,W.byteOffset,Math.floor(W.byteLength/4)),eY=(W)=>new DataView(W.buffer,W.byteOffset,W.byteLength),N7=(W,G)=>W<<32-G|W>>>G,Da=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;if(!Da)throw Error("Non little-endian hardware is not supported");var Ca=async()=>{};async function gH(W,G,X){let Y=Date.now();for(let J=0;J<W;J++){X(J);let Z=Date.now()-Y;if(Z>=0&&Z<G)continue;await Ca(),Y+=Z}}function Ta(W){if(typeof W!=="string")throw Error(`utf8ToBytes expected string, got ${typeof W}`);return new Uint8Array(new TextEncoder().encode(W))}function r7(W){if(typeof W==="string")W=Ta(W);if(!rx(W))throw Error(`expected Uint8Array, got ${typeof W}`);return W}function ax(...W){let G=new Uint8Array(W.reduce((Y,J)=>Y+J.length,0)),X=0;return W.forEach((Y)=>{if(!rx(Y))throw Error("Uint8Array expected");G.set(Y,X),X+=Y.length}),G}class SG{clone(){return this._cloneInto()}}var Ma={}.toString;function uH(W,G){if(G!==void 0&&Ma.call(G)!=="[object Object]")throw Error("Options should be object or undefined");return Object.assign(W,G)}function WJ(W){let G=(Y)=>W().update(r7(Y)).digest(),X=W();return G.outputLen=X.outputLen,G.blockLen=X.blockLen,G.create=()=>W(),G}function sx(W=32){if(vH&&typeof vH.getRandomValues==="function")return vH.getRandomValues(new Uint8Array(W));throw Error("crypto.getRandomValues must be defined")}var[Wk,Gk,Xk]=[[],[],[]],Pa=BigInt(0),jU=BigInt(1),Ra=BigInt(2),La=BigInt(7),Ba=BigInt(256),Ea=BigInt(113);for(let W=0,G=jU,X=1,Y=0;W<24;W++){[X,Y]=[Y,(2*X+3*Y)%5],Wk.push(2*(5*Y+X)),Gk.push((W+1)*(W+2)/2%64);let J=Pa;for(let Z=0;Z<7;Z++)if(G=(G<<jU^(G>>La)*Ea)%Ba,G&Ra)J^=jU<<(jU<<BigInt(Z))-jU;Xk.push(J)}var[$a,Fa]=lx(Xk,!0),tx=(W,G,X)=>X>32?nx(W,G,X):dx(W,G,X),ex=(W,G,X)=>X>32?ix(W,G,X):ox(W,G,X);function Sa(W,G=24){let X=new Uint32Array(10);for(let Y=24-G;Y<24;Y++){for(let V=0;V<10;V++)X[V]=W[V]^W[V+10]^W[V+20]^W[V+30]^W[V+40];for(let V=0;V<10;V+=2){let U=(V+8)%10,Q=(V+2)%10,N=X[Q],q=X[Q+1],A=tx(N,q,1)^X[U],H=ex(N,q,1)^X[U+1];for(let I=0;I<50;I+=10)W[V+I]^=A,W[V+I+1]^=H}let J=W[2],Z=W[3];for(let V=0;V<24;V++){let U=Gk[V],Q=tx(J,Z,U),N=ex(J,Z,U),q=Wk[V];J=W[q],Z=W[q+1],W[q]=Q,W[q+1]=N}for(let V=0;V<50;V+=10){for(let U=0;U<10;U++)X[U]=W[V+U];for(let U=0;U<10;U++)W[V+U]^=~X[(U+2)%10]&X[(U+4)%10]}W[0]^=$a[Y],W[1]^=Fa[Y]}X.fill(0)}class DO extends SG{constructor(W,G,X,Y=!1,J=24){super();if(this.blockLen=W,this.suffix=G,this.outputLen=X,this.enableXOF=Y,this.rounds=J,this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,L9(X),0>=this.blockLen||this.blockLen>=200)throw Error("Sha3 supports only keccak-f1600 function");this.state=new Uint8Array(200),this.state32=tY(this.state)}keccak(){Sa(this.state32,this.rounds),this.posOut=0,this.pos=0}update(W){i4(this);let{blockLen:G,state:X}=this;W=r7(W);let Y=W.length;for(let J=0;J<Y;){let Z=Math.min(G-this.pos,Y-J);for(let V=0;V<Z;V++)X[this.pos++]^=W[J++];if(this.pos===G)this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;let{state:W,suffix:G,pos:X,blockLen:Y}=this;if(W[X]^=G,(G&128)!==0&&X===Y-1)this.keccak();W[Y-1]^=128,this.keccak()}writeInto(W){i4(this,!1),IU(W),this.finish();let G=this.state,{blockLen:X}=this;for(let Y=0,J=W.length;Y<J;){if(this.posOut>=X)this.keccak();let Z=Math.min(X-this.posOut,J-Y);W.set(G.subarray(this.posOut,this.posOut+Z),Y),this.posOut+=Z,Y+=Z}return W}xofInto(W){if(!this.enableXOF)throw Error("XOF is not possible for this instance");return this.writeInto(W)}xof(W){return L9(W),this.xofInto(new Uint8Array(W))}digestInto(W){if(_H(W,this),this.finished)throw Error("digest() was already called");return this.writeInto(W),this.destroy(),W}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,this.state.fill(0)}_cloneInto(W){let{blockLen:G,suffix:X,outputLen:Y,rounds:J,enableXOF:Z}=this;return W||(W=new DO(G,X,Y,Z,J)),W.state32.set(this.state32),W.pos=this.pos,W.posOut=this.posOut,W.finished=this.finished,W.rounds=J,W.suffix=X,W.outputLen=Y,W.enableXOF=Z,W.destroyed=this.destroyed,W}}var xa=(W,G,X)=>WJ(()=>new DO(G,W,X));var Yk=xa(1,136,32);var Jk=!1,Zk=function(W){return Yk(W)},Vk=Zk;function Z8(W){let G=E0(W,"data");return C0(Vk(G))}Z8._=Zk;Z8.lock=function(){Jk=!0};Z8.register=function(W){if(Jk)throw TypeError("keccak256 is locked");Vk=W};Object.freeze(Z8);function ka(W,G,X,Y){if(typeof W.setBigUint64==="function")return W.setBigUint64(G,X,Y);let J=BigInt(32),Z=BigInt(4294967295),V=Number(X>>J&Z),U=Number(X&Z),Q=Y?4:0,N=Y?0:4;W.setUint32(G+Q,V,Y),W.setUint32(G+N,U,Y)}class KU extends SG{constructor(W,G,X,Y){super();this.blockLen=W,this.outputLen=G,this.padOffset=X,this.isLE=Y,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(W),this.view=eY(this.buffer)}update(W){i4(this);let{view:G,buffer:X,blockLen:Y}=this;W=r7(W);let J=W.length;for(let Z=0;Z<J;){let V=Math.min(Y-this.pos,J-Z);if(V===Y){let U=eY(W);for(;Y<=J-Z;Z+=Y)this.process(U,Z);continue}if(X.set(W.subarray(Z,Z+V),this.pos),this.pos+=V,Z+=V,this.pos===Y)this.process(G,0),this.pos=0}return this.length+=W.length,this.roundClean(),this}digestInto(W){i4(this),_H(W,this),this.finished=!0;let{buffer:G,view:X,blockLen:Y,isLE:J}=this,{pos:Z}=this;if(G[Z++]=128,this.buffer.subarray(Z).fill(0),this.padOffset>Y-Z)this.process(X,0),Z=0;for(let q=Z;q<Y;q++)G[q]=0;ka(X,Y-8,BigInt(this.length*8),J),this.process(X,0);let V=eY(W),U=this.outputLen;if(U%4)throw Error("_sha2: outputLen should be aligned to 32bit");let Q=U/4,N=this.get();if(Q>N.length)throw Error("_sha2: outputLen bigger than state");for(let q=0;q<Q;q++)V.setUint32(4*q,N[q],J)}digest(){let{buffer:W,outputLen:G}=this;this.digestInto(W);let X=W.slice(0,G);return this.destroy(),X}_cloneInto(W){W||(W=new this.constructor),W.set(...this.get());let{blockLen:G,buffer:X,length:Y,finished:J,destroyed:Z,pos:V}=this;if(W.length=Y,W.pos=V,W.finished=J,W.destroyed=Z,Y%G)W.buffer.set(X);return W}}var _a=new Uint8Array([7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8]),Qk=Uint8Array.from({length:16},(W,G)=>G),ya=Qk.map((W)=>(9*W+5)%16),CO=[Qk],TO=[ya];for(let W=0;W<4;W++)for(let G of[CO,TO])G.push(G[W].map((X)=>_a[X]));var Nk=[[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8],[12,13,11,15,6,9,9,7,12,15,11,13,7,8,7,7],[13,15,14,11,7,7,6,8,13,14,13,12,5,5,6,9],[14,11,12,14,8,6,5,5,15,12,15,14,9,9,8,6],[15,12,13,13,9,5,8,6,14,11,12,11,8,6,5,5]].map((W)=>new Uint8Array(W)),va=CO.map((W,G)=>W.map((X)=>Nk[G][X])),ga=TO.map((W,G)=>W.map((X)=>Nk[G][X])),ua=new Uint32Array([0,1518500249,1859775393,2400959708,2840853838]),ha=new Uint32Array([1352829926,1548603684,1836072691,2053994217,0]),hH=(W,G)=>W<<G|W>>>32-G;function Uk(W,G,X,Y){if(W===0)return G^X^Y;else if(W===1)return G&X|~G&Y;else if(W===2)return(G|~X)^Y;else if(W===3)return G&Y|X&~Y;else return G^(X|~Y)}var bH=new Uint32Array(16);class qk extends KU{constructor(){super(64,20,8,!0);this.h0=1732584193,this.h1=-271733879,this.h2=-1732584194,this.h3=271733878,this.h4=-1009589776}get(){let{h0:W,h1:G,h2:X,h3:Y,h4:J}=this;return[W,G,X,Y,J]}set(W,G,X,Y,J){this.h0=W|0,this.h1=G|0,this.h2=X|0,this.h3=Y|0,this.h4=J|0}process(W,G){for(let H=0;H<16;H++,G+=4)bH[H]=W.getUint32(G,!0);let X=this.h0|0,Y=X,J=this.h1|0,Z=J,V=this.h2|0,U=V,Q=this.h3|0,N=Q,q=this.h4|0,A=q;for(let H=0;H<5;H++){let I=4-H,w=ua[H],O=ha[H],T=CO[H],F=TO[H],E=va[H],g=ga[H];for(let k=0;k<16;k++){let f=hH(X+Uk(H,J,V,Q)+bH[T[k]]+w,E[k])+q|0;X=q,q=Q,Q=hH(V,10)|0,V=J,J=f}for(let k=0;k<16;k++){let f=hH(Y+Uk(I,Z,U,N)+bH[F[k]]+O,g[k])+A|0;Y=A,A=N,N=hH(U,10)|0,U=Z,Z=f}}this.set(this.h1+V+N|0,this.h2+Q+A|0,this.h3+q+Y|0,this.h4+X+Z|0,this.h0+J+U|0)}roundClean(){bH.fill(0)}destroy(){this.destroyed=!0,this.buffer.fill(0),this.set(0,0,0,0,0)}}var Hk=WJ(()=>new qk);var Ak=!1,zk=function(W){return Hk(W)},Ik=zk;function YW(W){let G=E0(W,"data");return C0(Ik(G))}YW._=zk;YW.lock=function(){Ak=!0};YW.register=function(W){if(Ak)throw TypeError("ripemd160 is locked");Ik=W};Object.freeze(YW);var wk=!1,jk=function(W,G,X,Y,J){return hx(W,G,X,Y,J)},Kk=jk;function S5(W,G,X,Y,J){let Z=E0(W,"password"),V=E0(G,"salt");return C0(Kk(Z,V,X,Y,J))}S5._=jk;S5.lock=function(){wk=!0};S5.register=function(W){if(wk)throw Error("pbkdf2 is locked");Kk=W};Object.freeze(S5);var Ok=!1,Dk=function(W){return new Uint8Array(bx(W))},Ck=Dk;function x5(W){return Ck(W)}x5._=Dk;x5.lock=function(){Ok=!0};x5.register=function(W){if(Ok)throw Error("randomBytes is locked");Ck=W};Object.freeze(x5);var ba=(W,G,X)=>W&G^~W&X,ma=(W,G,X)=>W&G^W&X^G&X,fa=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),JW=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),ZW=new Uint32Array(64);class Tk extends KU{constructor(){super(64,32,8,!1);this.A=JW[0]|0,this.B=JW[1]|0,this.C=JW[2]|0,this.D=JW[3]|0,this.E=JW[4]|0,this.F=JW[5]|0,this.G=JW[6]|0,this.H=JW[7]|0}get(){let{A:W,B:G,C:X,D:Y,E:J,F:Z,G:V,H:U}=this;return[W,G,X,Y,J,Z,V,U]}set(W,G,X,Y,J,Z,V,U){this.A=W|0,this.B=G|0,this.C=X|0,this.D=Y|0,this.E=J|0,this.F=Z|0,this.G=V|0,this.H=U|0}process(W,G){for(let q=0;q<16;q++,G+=4)ZW[q]=W.getUint32(G,!1);for(let q=16;q<64;q++){let A=ZW[q-15],H=ZW[q-2],I=N7(A,7)^N7(A,18)^A>>>3,w=N7(H,17)^N7(H,19)^H>>>10;ZW[q]=w+ZW[q-7]+I+ZW[q-16]|0}let{A:X,B:Y,C:J,D:Z,E:V,F:U,G:Q,H:N}=this;for(let q=0;q<64;q++){let A=N7(V,6)^N7(V,11)^N7(V,25),H=N+A+ba(V,U,Q)+fa[q]+ZW[q]|0,w=(N7(X,2)^N7(X,13)^N7(X,22))+ma(X,Y,J)|0;N=Q,Q=U,U=V,V=Z+H|0,Z=J,J=Y,Y=X,X=H+w|0}X=X+this.A|0,Y=Y+this.B|0,J=J+this.C|0,Z=Z+this.D|0,V=V+this.E|0,U=U+this.F|0,Q=Q+this.G|0,N=N+this.H|0,this.set(X,Y,J,Z,V,U,Q,N)}roundClean(){ZW.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}}var OU=WJ(()=>new Tk);class MO extends SG{constructor(W,G){super();this.finished=!1,this.destroyed=!1,kH(W);let X=r7(G);if(this.iHash=W.create(),typeof this.iHash.update!=="function")throw Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let Y=this.blockLen,J=new Uint8Array(Y);J.set(X.length>Y?W.create().update(X).digest():X);for(let Z=0;Z<J.length;Z++)J[Z]^=54;this.iHash.update(J),this.oHash=W.create();for(let Z=0;Z<J.length;Z++)J[Z]^=106;this.oHash.update(J),J.fill(0)}update(W){return i4(this),this.iHash.update(W),this}digestInto(W){i4(this),IU(W,this.outputLen),this.finished=!0,this.iHash.digestInto(W),this.oHash.update(W),this.oHash.digestInto(W),this.destroy()}digest(){let W=new Uint8Array(this.oHash.outputLen);return this.digestInto(W),W}_cloneInto(W){W||(W=Object.create(Object.getPrototypeOf(this),{}));let{oHash:G,iHash:X,finished:Y,destroyed:J,blockLen:Z,outputLen:V}=this;return W=W,W.finished=Y,W.destroyed=J,W.blockLen=Z,W.outputLen=V,W.oHash=G._cloneInto(W.oHash),W.iHash=X._cloneInto(W.iHash),W}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}var DU=(W,G,X)=>new MO(W,G).update(X).digest();DU.create=(W,G)=>new MO(W,G);function pa(W,G,X,Y){kH(W);let J=uH({dkLen:32,asyncTick:10},Y),{c:Z,dkLen:V,asyncTick:U}=J;if(L9(Z),L9(V),L9(U),Z<1)throw Error("PBKDF2: iterations (c) should be >= 1");let Q=r7(G),N=r7(X),q=new Uint8Array(V),A=DU.create(W,Q),H=A._cloneInto().update(N);return{c:Z,dkLen:V,asyncTick:U,DK:q,PRF:A,PRFSalt:H}}function ca(W,G,X,Y,J){if(W.destroy(),G.destroy(),Y)Y.destroy();return J.fill(0),X}function PO(W,G,X,Y){let{c:J,dkLen:Z,DK:V,PRF:U,PRFSalt:Q}=pa(W,G,X,Y),N,q=new Uint8Array(4),A=eY(q),H=new Uint8Array(U.outputLen);for(let I=1,w=0;w<Z;I++,w+=U.outputLen){let O=V.subarray(w,w+U.outputLen);A.setInt32(0,I,!1),(N=Q._cloneInto(N)).update(q).digestInto(H),O.set(H.subarray(0,O.length));for(let T=1;T<J;T++){U._cloneInto(N).update(H).digestInto(H);for(let F=0;F<O.length;F++)O[F]^=H[F]}}return ca(U,Q,V,N,H)}var a1=(W,G)=>W<<G|W>>>32-G;function Mk(W,G,X,Y,J,Z){let V=W[G++]^X[Y++],U=W[G++]^X[Y++],Q=W[G++]^X[Y++],N=W[G++]^X[Y++],q=W[G++]^X[Y++],A=W[G++]^X[Y++],H=W[G++]^X[Y++],I=W[G++]^X[Y++],w=W[G++]^X[Y++],O=W[G++]^X[Y++],T=W[G++]^X[Y++],F=W[G++]^X[Y++],E=W[G++]^X[Y++],g=W[G++]^X[Y++],k=W[G++]^X[Y++],f=W[G++]^X[Y++],l=V,c=U,d=Q,h=N,W0=q,H0=A,y=H,r=I,L=w,B=O,m=T,t=F,o=E,$=g,S=k,v=f;for(let _=0;_<8;_+=2)W0^=a1(l+o|0,7),L^=a1(W0+l|0,9),o^=a1(L+W0|0,13),l^=a1(o+L|0,18),B^=a1(H0+c|0,7),$^=a1(B+H0|0,9),c^=a1($+B|0,13),H0^=a1(c+$|0,18),S^=a1(m+y|0,7),d^=a1(S+m|0,9),y^=a1(d+S|0,13),m^=a1(y+d|0,18),h^=a1(v+t|0,7),r^=a1(h+v|0,9),t^=a1(r+h|0,13),v^=a1(t+r|0,18),c^=a1(l+h|0,7),d^=a1(c+l|0,9),h^=a1(d+c|0,13),l^=a1(h+d|0,18),y^=a1(H0+W0|0,7),r^=a1(y+H0|0,9),W0^=a1(r+y|0,13),H0^=a1(W0+r|0,18),t^=a1(m+B|0,7),L^=a1(t+m|0,9),B^=a1(L+t|0,13),m^=a1(B+L|0,18),o^=a1(v+S|0,7),$^=a1(o+v|0,9),S^=a1($+o|0,13),v^=a1(S+$|0,18);J[Z++]=V+l|0,J[Z++]=U+c|0,J[Z++]=Q+d|0,J[Z++]=N+h|0,J[Z++]=q+W0|0,J[Z++]=A+H0|0,J[Z++]=H+y|0,J[Z++]=I+r|0,J[Z++]=w+L|0,J[Z++]=O+B|0,J[Z++]=T+m|0,J[Z++]=F+t|0,J[Z++]=E+o|0,J[Z++]=g+$|0,J[Z++]=k+S|0,J[Z++]=f+v|0}function GJ(W,G,X,Y,J){let Z=Y+0,V=Y+16*J;for(let U=0;U<16;U++)X[V+U]=W[G+(2*J-1)*16+U];for(let U=0;U<J;U++,Z+=16,G+=16){if(Mk(X,V,W,G,X,Z),U>0)V+=16;Mk(X,Z,W,G+=16,X,V)}}function Pk(W,G,X){let Y=uH({dkLen:32,asyncTick:10,maxmem:1073742848},X),{N:J,r:Z,p:V,dkLen:U,asyncTick:Q,maxmem:N,onProgress:q}=Y;if(L9(J),L9(Z),L9(V),L9(U),L9(Q),L9(N),q!==void 0&&typeof q!=="function")throw Error("progressCb should be function");let A=128*Z,H=A/4;if(J<=1||(J&J-1)!==0||J>=2**(A/8)||J>4294967296)throw Error("Scrypt: N must be larger than 1, a power of 2, less than 2^(128 * r / 8) and less than 2^32");if(V<0||V>137438953440/A)throw Error("Scrypt: p must be a positive integer less than or equal to ((2^32 - 1) * 32) / (128 * r)");if(U<0||U>137438953440)throw Error("Scrypt: dkLen should be positive integer less than or equal to (2^32 - 1) * 32");let I=A*(J+V);if(I>N)throw Error(`Scrypt: parameters too large, ${I} (128 * r * (N + p)) > ${N} (maxmem)`);let w=PO(OU,W,G,{c:1,dkLen:A*V}),O=tY(w),T=tY(new Uint8Array(A*J)),F=tY(new Uint8Array(A)),E=()=>{};if(q){let g=2*J*V,k=Math.max(Math.floor(g/1e4),1),f=0;E=()=>{if(f++,q&&(!(f%k)||f===g))q(f/g)}}return{N:J,r:Z,p:V,dkLen:U,blockSize32:H,V:T,B32:O,B:w,tmp:F,blockMixCb:E,asyncTick:Q}}function Rk(W,G,X,Y,J){let Z=PO(OU,W,X,{c:1,dkLen:G});return X.fill(0),Y.fill(0),J.fill(0),Z}function Lk(W,G,X){let{N:Y,r:J,p:Z,dkLen:V,blockSize32:U,V:Q,B32:N,B:q,tmp:A,blockMixCb:H}=Pk(W,G,X);for(let I=0;I<Z;I++){let w=U*I;for(let O=0;O<U;O++)Q[O]=N[w+O];for(let O=0,T=0;O<Y-1;O++)GJ(Q,T,Q,T+=U,J),H();GJ(Q,(Y-1)*U,N,w,J),H();for(let O=0;O<Y;O++){let T=N[w+U-16]%Y;for(let F=0;F<U;F++)A[F]=N[w+F]^Q[T*U+F];GJ(A,0,N,w,J),H()}}return Rk(W,V,q,Q,A)}async function Bk(W,G,X){let{N:Y,r:J,p:Z,dkLen:V,blockSize32:U,V:Q,B32:N,B:q,tmp:A,blockMixCb:H,asyncTick:I}=Pk(W,G,X);for(let w=0;w<Z;w++){let O=U*w;for(let F=0;F<U;F++)Q[F]=N[O+F];let T=0;await gH(Y-1,I,()=>{GJ(Q,T,Q,T+=U,J),H()}),GJ(Q,(Y-1)*U,N,O,J),H(),await gH(Y,I,()=>{let F=N[O+U-16]%Y;for(let E=0;E<U;E++)A[E]=N[O+E]^Q[F*U+E];GJ(A,0,N,O,J),H()})}return Rk(W,V,q,Q,A)}var Ek=!1,$k=!1,Fk=async function(W,G,X,Y,J,Z,V){return await Bk(W,G,{N:X,r:Y,p:J,dkLen:Z,onProgress:V})},Sk=function(W,G,X,Y,J,Z){return Lk(W,G,{N:X,r:Y,p:J,dkLen:Z})},xk=Fk,kk=Sk;async function VW(W,G,X,Y,J,Z,V){let U=E0(W,"passwd"),Q=E0(G,"salt");return C0(await xk(U,Q,X,Y,J,Z,V))}VW._=Fk;VW.lock=function(){$k=!0};VW.register=function(W){if($k)throw Error("scrypt is locked");xk=W};Object.freeze(VW);function UW(W,G,X,Y,J,Z){let V=E0(W,"passwd"),U=E0(G,"salt");return C0(kk(V,U,X,Y,J,Z))}UW._=Sk;UW.lock=function(){Ek=!0};UW.register=function(W){if(Ek)throw Error("scryptSync is locked");kk=W};Object.freeze(UW);var _k=function(W){return OO("sha256").update(W).digest()},yk=function(W){return OO("sha512").update(W).digest()},vk=_k,gk=yk,uk=!1,hk=!1;function B9(W){let G=E0(W,"data");return C0(vk(G))}B9._=_k;B9.lock=function(){uk=!0};B9.register=function(W){if(uk)throw Error("sha256 is locked");vk=W};Object.freeze(B9);function mH(W){let G=E0(W,"data");return C0(gk(G))}mH._=yk;mH.lock=function(){hk=!0};mH.register=function(W){if(hk)throw Error("sha512 is locked");gk=W};Object.freeze(B9);var EO={};zA(EO,{validateObject:()=>NW,utf8ToBytes:()=>ia,numberToVarBytesBE:()=>oa,numberToHexUnpadded:()=>fk,numberToBytesLE:()=>lH,numberToBytesBE:()=>QW,hexToNumber:()=>LO,hexToBytes:()=>kG,equalBytes:()=>na,ensureBytes:()=>z5,createHmacDrbg:()=>BO,concatBytes:()=>XJ,bytesToNumberLE:()=>cH,bytesToNumberBE:()=>r4,bytesToHex:()=>xG,bitSet:()=>sa,bitMask:()=>CU,bitLen:()=>ra,bitGet:()=>aa});/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var mk=BigInt(0),fH=BigInt(1),la=BigInt(2),pH=(W)=>W instanceof Uint8Array,da=Array.from({length:256},(W,G)=>G.toString(16).padStart(2,"0"));function xG(W){if(!pH(W))throw Error("Uint8Array expected");let G="";for(let X=0;X<W.length;X++)G+=da[W[X]];return G}function fk(W){let G=W.toString(16);return G.length&1?`0${G}`:G}function LO(W){if(typeof W!=="string")throw Error("hex string expected, got "+typeof W);return BigInt(W===""?"0":`0x${W}`)}function kG(W){if(typeof W!=="string")throw Error("hex string expected, got "+typeof W);let G=W.length;if(G%2)throw Error("padded hex string expected, got unpadded hex of length "+G);let X=new Uint8Array(G/2);for(let Y=0;Y<X.length;Y++){let J=Y*2,Z=W.slice(J,J+2),V=Number.parseInt(Z,16);if(Number.isNaN(V)||V<0)throw Error("Invalid byte sequence");X[Y]=V}return X}function r4(W){return LO(xG(W))}function cH(W){if(!pH(W))throw Error("Uint8Array expected");return LO(xG(Uint8Array.from(W).reverse()))}function QW(W,G){return kG(W.toString(16).padStart(G*2,"0"))}function lH(W,G){return QW(W,G).reverse()}function oa(W){return kG(fk(W))}function z5(W,G,X){let Y;if(typeof G==="string")try{Y=kG(G)}catch(Z){throw Error(`${W} must be valid hex string, got "${G}". Cause: ${Z}`)}else if(pH(G))Y=Uint8Array.from(G);else throw Error(`${W} must be hex string or Uint8Array`);let J=Y.length;if(typeof X==="number"&&J!==X)throw Error(`${W} expected ${X} bytes, got ${J}`);return Y}function XJ(...W){let G=new Uint8Array(W.reduce((Y,J)=>Y+J.length,0)),X=0;return W.forEach((Y)=>{if(!pH(Y))throw Error("Uint8Array expected");G.set(Y,X),X+=Y.length}),G}function na(W,G){if(W.length!==G.length)return!1;for(let X=0;X<W.length;X++)if(W[X]!==G[X])return!1;return!0}function ia(W){if(typeof W!=="string")throw Error(`utf8ToBytes expected string, got ${typeof W}`);return new Uint8Array(new TextEncoder().encode(W))}function ra(W){let G;for(G=0;W>mk;W>>=fH,G+=1);return G}function aa(W,G){return W>>BigInt(G)&fH}var sa=(W,G,X)=>{return W|(X?fH:mk)<<BigInt(G)},CU=(W)=>(la<<BigInt(W-1))-fH,RO=(W)=>new Uint8Array(W),bk=(W)=>Uint8Array.from(W);function BO(W,G,X){if(typeof W!=="number"||W<2)throw Error("hashLen must be a number");if(typeof G!=="number"||G<2)throw Error("qByteLen must be a number");if(typeof X!=="function")throw Error("hmacFn must be a function");let Y=RO(W),J=RO(W),Z=0,V=()=>{Y.fill(1),J.fill(0),Z=0},U=(...A)=>X(J,Y,...A),Q=(A=RO())=>{if(J=U(bk([0]),A),Y=U(),A.length===0)return;J=U(bk([1]),A),Y=U()},N=()=>{if(Z++>=1000)throw Error("drbg: tried 1000 values");let A=0,H=[];while(A<G){Y=U();let I=Y.slice();H.push(I),A+=Y.length}return XJ(...H)};return(A,H)=>{V(),Q(A);let I=void 0;while(!(I=H(N())))Q();return V(),I}}var ta={bigint:(W)=>typeof W==="bigint",function:(W)=>typeof W==="function",boolean:(W)=>typeof W==="boolean",string:(W)=>typeof W==="string",stringOrUint8Array:(W)=>typeof W==="string"||W instanceof Uint8Array,isSafeInteger:(W)=>Number.isSafeInteger(W),array:(W)=>Array.isArray(W),field:(W,G)=>G.Fp.isValid(W),hash:(W)=>typeof W==="function"&&Number.isSafeInteger(W.outputLen)};function NW(W,G,X={}){let Y=(J,Z,V)=>{let U=ta[Z];if(typeof U!=="function")throw Error(`Invalid validator "${Z}", expected function`);let Q=W[J];if(V&&Q===void 0)return;if(!U(Q,W))throw Error(`Invalid param ${String(J)}=${Q} (${typeof Q}), expected ${Z}`)};for(let[J,Z]of Object.entries(G))Y(J,Z,!1);for(let[J,Z]of Object.entries(X))Y(J,Z,!0);return W}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var o8=BigInt(0),S8=BigInt(1),_G=BigInt(2),ea=BigInt(3),$O=BigInt(4),pk=BigInt(5),ck=BigInt(8),Ws=BigInt(9),Gs=BigInt(16);function E9(W,G){let X=W%G;return X>=o8?X:G+X}function Xs(W,G,X){if(X<=o8||G<o8)throw Error("Expected power/modulo > 0");if(X===S8)return o8;let Y=S8;while(G>o8){if(G&S8)Y=Y*W%X;W=W*W%X,G>>=S8}return Y}function I5(W,G,X){let Y=W;while(G-- >o8)Y*=Y,Y%=X;return Y}function dH(W,G){if(W===o8||G<=o8)throw Error(`invert: expected positive integers, got n=${W} mod=${G}`);let X=E9(W,G),Y=G,J=o8,Z=S8,V=S8,U=o8;while(X!==o8){let N=Y/X,q=Y%X,A=J-V*N,H=Z-U*N;Y=X,X=q,J=V,Z=U,V=A,U=H}if(Y!==S8)throw Error("invert: does not exist");return E9(J,G)}function Ys(W){let G=(W-S8)/_G,X,Y,J;for(X=W-S8,Y=0;X%_G===o8;X/=_G,Y++);for(J=_G;J<W&&Xs(J,G,W)!==W-S8;J++);if(Y===1){let V=(W+S8)/$O;return function(Q,N){let q=Q.pow(N,V);if(!Q.eql(Q.sqr(q),N))throw Error("Cannot find square root");return q}}let Z=(X+S8)/_G;return function(U,Q){if(U.pow(Q,G)===U.neg(U.ONE))throw Error("Cannot find square root");let N=Y,q=U.pow(U.mul(U.ONE,J),X),A=U.pow(Q,Z),H=U.pow(Q,X);while(!U.eql(H,U.ONE)){if(U.eql(H,U.ZERO))return U.ZERO;let I=1;for(let O=U.sqr(H);I<N;I++){if(U.eql(O,U.ONE))break;O=U.sqr(O)}let w=U.pow(q,S8<<BigInt(N-I-1));q=U.sqr(w),A=U.mul(A,w),H=U.mul(H,q),N=I}return A}}function Js(W){if(W%$O===ea){let G=(W+S8)/$O;return function(Y,J){let Z=Y.pow(J,G);if(!Y.eql(Y.sqr(Z),J))throw Error("Cannot find square root");return Z}}if(W%ck===pk){let G=(W-pk)/ck;return function(Y,J){let Z=Y.mul(J,_G),V=Y.pow(Z,G),U=Y.mul(J,V),Q=Y.mul(Y.mul(U,_G),V),N=Y.mul(U,Y.sub(Q,Y.ONE));if(!Y.eql(Y.sqr(N),J))throw Error("Cannot find square root");return N}}if(W%Gs===Ws);return Ys(W)}var Zs=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function FO(W){let G={ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"},X=Zs.reduce((Y,J)=>{return Y[J]="function",Y},G);return NW(W,X)}function Vs(W,G,X){if(X<o8)throw Error("Expected power > 0");if(X===o8)return W.ONE;if(X===S8)return G;let Y=W.ONE,J=G;while(X>o8){if(X&S8)Y=W.mul(Y,J);J=W.sqr(J),X>>=S8}return Y}function Us(W,G){let X=Array(G.length),Y=G.reduce((Z,V,U)=>{if(W.is0(V))return Z;return X[U]=Z,W.mul(Z,V)},W.ONE),J=W.inv(Y);return G.reduceRight((Z,V,U)=>{if(W.is0(V))return Z;return X[U]=W.mul(Z,X[U]),W.mul(Z,V)},J),X}function SO(W,G){let X=G!==void 0?G:W.toString(2).length,Y=Math.ceil(X/8);return{nBitLength:X,nByteLength:Y}}function lk(W,G,X=!1,Y={}){if(W<=o8)throw Error(`Expected Field ORDER > 0, got ${W}`);let{nBitLength:J,nByteLength:Z}=SO(W,G);if(Z>2048)throw Error("Field lengths over 2048 bytes are not supported");let V=Js(W),U=Object.freeze({ORDER:W,BITS:J,BYTES:Z,MASK:CU(J),ZERO:o8,ONE:S8,create:(Q)=>E9(Q,W),isValid:(Q)=>{if(typeof Q!=="bigint")throw Error(`Invalid field element: expected bigint, got ${typeof Q}`);return o8<=Q&&Q<W},is0:(Q)=>Q===o8,isOdd:(Q)=>(Q&S8)===S8,neg:(Q)=>E9(-Q,W),eql:(Q,N)=>Q===N,sqr:(Q)=>E9(Q*Q,W),add:(Q,N)=>E9(Q+N,W),sub:(Q,N)=>E9(Q-N,W),mul:(Q,N)=>E9(Q*N,W),pow:(Q,N)=>Vs(U,Q,N),div:(Q,N)=>E9(Q*dH(N,W),W),sqrN:(Q)=>Q*Q,addN:(Q,N)=>Q+N,subN:(Q,N)=>Q-N,mulN:(Q,N)=>Q*N,inv:(Q)=>dH(Q,W),sqrt:Y.sqrt||((Q)=>V(U,Q)),invertBatch:(Q)=>Us(U,Q),cmov:(Q,N,q)=>q?N:Q,toBytes:(Q)=>X?lH(Q,Z):QW(Q,Z),fromBytes:(Q)=>{if(Q.length!==Z)throw Error(`Fp.fromBytes: expected ${Z}, got ${Q.length}`);return X?cH(Q):r4(Q)}});return Object.freeze(U)}function dk(W){if(typeof W!=="bigint")throw Error("field order must be bigint");let G=W.toString(2).length;return Math.ceil(G/8)}function xO(W){let G=dk(W);return G+Math.ceil(G/2)}function ok(W,G,X=!1){let Y=W.length,J=dk(G),Z=xO(G);if(Y<16||Y<Z||Y>1024)throw Error(`expected ${Z}-1024 bytes of input, got ${Y}`);let V=X?r4(W):cH(W),U=E9(V,G-S8)+S8;return X?lH(U,J):QW(U,J)}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var Ns=BigInt(0),kO=BigInt(1);function nk(W,G){let X=(J,Z)=>{let V=Z.negate();return J?V:Z},Y=(J)=>{let Z=Math.ceil(G/J)+1,V=2**(J-1);return{windows:Z,windowSize:V}};return{constTimeNegate:X,unsafeLadder(J,Z){let V=W.ZERO,U=J;while(Z>Ns){if(Z&kO)V=V.add(U);U=U.double(),Z>>=kO}return V},precomputeWindow(J,Z){let{windows:V,windowSize:U}=Y(Z),Q=[],N=J,q=N;for(let A=0;A<V;A++){q=N,Q.push(q);for(let H=1;H<U;H++)q=q.add(N),Q.push(q);N=q.double()}return Q},wNAF(J,Z,V){let{windows:U,windowSize:Q}=Y(J),N=W.ZERO,q=W.BASE,A=BigInt(2**J-1),H=2**J,I=BigInt(J);for(let w=0;w<U;w++){let O=w*Q,T=Number(V&A);if(V>>=I,T>Q)T-=H,V+=kO;let F=O,E=O+Math.abs(T)-1,g=w%2!==0,k=T<0;if(T===0)q=q.add(X(g,Z[F]));else N=N.add(X(k,Z[E]))}return{p:N,f:q}},wNAFCached(J,Z,V,U){let Q=J._WINDOW_SIZE||1,N=Z.get(J);if(!N){if(N=this.precomputeWindow(J,Q),Q!==1)Z.set(J,U(N))}return this.wNAF(Q,N,V)}}}function _O(W){return FO(W.Fp),NW(W,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...SO(W.n,W.nBitLength),...W,...{p:W.Fp.ORDER}})}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function qs(W){let G=_O(W);NW(G,{a:"field",b:"field"},{allowedPrivateKeyLengths:"array",wrapPrivateKey:"boolean",isTorsionFree:"function",clearCofactor:"function",allowInfinityPoint:"boolean",fromBytes:"function",toBytes:"function"});let{endo:X,Fp:Y,a:J}=G;if(X){if(!Y.eql(J,Y.ZERO))throw Error("Endomorphism can only be defined for Koblitz curves that have a=0");if(typeof X!=="object"||typeof X.beta!=="bigint"||typeof X.splitScalar!=="function")throw Error("Expected endomorphism with beta: bigint and splitScalar: function")}return Object.freeze({...G})}var{bytesToNumberBE:Hs,hexToBytes:As}=EO,yG={Err:class extends Error{constructor(G=""){super(G)}},_parseInt(W){let{Err:G}=yG;if(W.length<2||W[0]!==2)throw new G("Invalid signature integer tag");let X=W[1],Y=W.subarray(2,X+2);if(!X||Y.length!==X)throw new G("Invalid signature integer: wrong length");if(Y[0]&128)throw new G("Invalid signature integer: negative");if(Y[0]===0&&!(Y[1]&128))throw new G("Invalid signature integer: unnecessary leading zero");return{d:Hs(Y),l:W.subarray(X+2)}},toSig(W){let{Err:G}=yG,X=typeof W==="string"?As(W):W;if(!(X instanceof Uint8Array))throw Error("ui8a expected");let Y=X.length;if(Y<2||X[0]!=48)throw new G("Invalid signature tag");if(X[1]!==Y-2)throw new G("Invalid signature: incorrect length");let{d:J,l:Z}=yG._parseInt(X.subarray(2)),{d:V,l:U}=yG._parseInt(Z);if(U.length)throw new G("Invalid signature: left bytes after parsing");return{r:J,s:V}},hexFromSig(W){let G=(N)=>Number.parseInt(N[0],16)&8?"00"+N:N,X=(N)=>{let q=N.toString(16);return q.length&1?`0${q}`:q},Y=G(X(W.s)),J=G(X(W.r)),Z=Y.length/2,V=J.length/2,U=X(Z),Q=X(V);return`30${X(V+Z+4)}02${Q}${J}02${U}${Y}`}},a4=BigInt(0),k5=BigInt(1),Oj0=BigInt(2),ik=BigInt(3),Dj0=BigInt(4);function zs(W){let G=qs(W),{Fp:X}=G,Y=G.toBytes||((w,O,T)=>{let F=O.toAffine();return XJ(Uint8Array.from([4]),X.toBytes(F.x),X.toBytes(F.y))}),J=G.fromBytes||((w)=>{let O=w.subarray(1),T=X.fromBytes(O.subarray(0,X.BYTES)),F=X.fromBytes(O.subarray(X.BYTES,2*X.BYTES));return{x:T,y:F}});function Z(w){let{a:O,b:T}=G,F=X.sqr(w),E=X.mul(F,w);return X.add(X.add(E,X.mul(w,O)),T)}if(!X.eql(X.sqr(G.Gy),Z(G.Gx)))throw Error("bad generator point: equation left != right");function V(w){return typeof w==="bigint"&&a4<w&&w<G.n}function U(w){if(!V(w))throw Error("Expected valid bigint: 0 < bigint < curve.n")}function Q(w){let{allowedPrivateKeyLengths:O,nByteLength:T,wrapPrivateKey:F,n:E}=G;if(O&&typeof w!=="bigint"){if(w instanceof Uint8Array)w=xG(w);if(typeof w!=="string"||!O.includes(w.length))throw Error("Invalid key");w=w.padStart(T*2,"0")}let g;try{g=typeof w==="bigint"?w:r4(z5("private key",w,T))}catch(k){throw Error(`private key must be ${T} bytes, hex or bigint, not ${typeof w}`)}if(F)g=E9(g,E);return U(g),g}let N=new Map;function q(w){if(!(w instanceof A))throw Error("ProjectivePoint expected")}class A{constructor(w,O,T){if(this.px=w,this.py=O,this.pz=T,w==null||!X.isValid(w))throw Error("x required");if(O==null||!X.isValid(O))throw Error("y required");if(T==null||!X.isValid(T))throw Error("z required")}static fromAffine(w){let{x:O,y:T}=w||{};if(!w||!X.isValid(O)||!X.isValid(T))throw Error("invalid affine point");if(w instanceof A)throw Error("projective point not allowed");let F=(E)=>X.eql(E,X.ZERO);if(F(O)&&F(T))return A.ZERO;return new A(O,T,X.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(w){let O=X.invertBatch(w.map((T)=>T.pz));return w.map((T,F)=>T.toAffine(O[F])).map(A.fromAffine)}static fromHex(w){let O=A.fromAffine(J(z5("pointHex",w)));return O.assertValidity(),O}static fromPrivateKey(w){return A.BASE.multiply(Q(w))}_setWindowSize(w){this._WINDOW_SIZE=w,N.delete(this)}assertValidity(){if(this.is0()){if(G.allowInfinityPoint&&!X.is0(this.py))return;throw Error("bad point: ZERO")}let{x:w,y:O}=this.toAffine();if(!X.isValid(w)||!X.isValid(O))throw Error("bad point: x or y not FE");let T=X.sqr(O),F=Z(w);if(!X.eql(T,F))throw Error("bad point: equation left != right");if(!this.isTorsionFree())throw Error("bad point: not in prime-order subgroup")}hasEvenY(){let{y:w}=this.toAffine();if(X.isOdd)return!X.isOdd(w);throw Error("Field doesn't support isOdd")}equals(w){q(w);let{px:O,py:T,pz:F}=this,{px:E,py:g,pz:k}=w,f=X.eql(X.mul(O,k),X.mul(E,F)),l=X.eql(X.mul(T,k),X.mul(g,F));return f&&l}negate(){return new A(this.px,X.neg(this.py),this.pz)}double(){let{a:w,b:O}=G,T=X.mul(O,ik),{px:F,py:E,pz:g}=this,k=X.ZERO,f=X.ZERO,l=X.ZERO,c=X.mul(F,F),d=X.mul(E,E),h=X.mul(g,g),W0=X.mul(F,E);return W0=X.add(W0,W0),l=X.mul(F,g),l=X.add(l,l),k=X.mul(w,l),f=X.mul(T,h),f=X.add(k,f),k=X.sub(d,f),f=X.add(d,f),f=X.mul(k,f),k=X.mul(W0,k),l=X.mul(T,l),h=X.mul(w,h),W0=X.sub(c,h),W0=X.mul(w,W0),W0=X.add(W0,l),l=X.add(c,c),c=X.add(l,c),c=X.add(c,h),c=X.mul(c,W0),f=X.add(f,c),h=X.mul(E,g),h=X.add(h,h),c=X.mul(h,W0),k=X.sub(k,c),l=X.mul(h,d),l=X.add(l,l),l=X.add(l,l),new A(k,f,l)}add(w){q(w);let{px:O,py:T,pz:F}=this,{px:E,py:g,pz:k}=w,f=X.ZERO,l=X.ZERO,c=X.ZERO,d=G.a,h=X.mul(G.b,ik),W0=X.mul(O,E),H0=X.mul(T,g),y=X.mul(F,k),r=X.add(O,T),L=X.add(E,g);r=X.mul(r,L),L=X.add(W0,H0),r=X.sub(r,L),L=X.add(O,F);let B=X.add(E,k);return L=X.mul(L,B),B=X.add(W0,y),L=X.sub(L,B),B=X.add(T,F),f=X.add(g,k),B=X.mul(B,f),f=X.add(H0,y),B=X.sub(B,f),c=X.mul(d,L),f=X.mul(h,y),c=X.add(f,c),f=X.sub(H0,c),c=X.add(H0,c),l=X.mul(f,c),H0=X.add(W0,W0),H0=X.add(H0,W0),y=X.mul(d,y),L=X.mul(h,L),H0=X.add(H0,y),y=X.sub(W0,y),y=X.mul(d,y),L=X.add(L,y),W0=X.mul(H0,L),l=X.add(l,W0),W0=X.mul(B,L),f=X.mul(r,f),f=X.sub(f,W0),W0=X.mul(r,H0),c=X.mul(B,c),c=X.add(c,W0),new A(f,l,c)}subtract(w){return this.add(w.negate())}is0(){return this.equals(A.ZERO)}wNAF(w){return I.wNAFCached(this,N,w,(O)=>{let T=X.invertBatch(O.map((F)=>F.pz));return O.map((F,E)=>F.toAffine(T[E])).map(A.fromAffine)})}multiplyUnsafe(w){let O=A.ZERO;if(w===a4)return O;if(U(w),w===k5)return this;let{endo:T}=G;if(!T)return I.unsafeLadder(this,w);let{k1neg:F,k1:E,k2neg:g,k2:k}=T.splitScalar(w),f=O,l=O,c=this;while(E>a4||k>a4){if(E&k5)f=f.add(c);if(k&k5)l=l.add(c);c=c.double(),E>>=k5,k>>=k5}if(F)f=f.negate();if(g)l=l.negate();return l=new A(X.mul(l.px,T.beta),l.py,l.pz),f.add(l)}multiply(w){U(w);let O=w,T,F,{endo:E}=G;if(E){let{k1neg:g,k1:k,k2neg:f,k2:l}=E.splitScalar(O),{p:c,f:d}=this.wNAF(k),{p:h,f:W0}=this.wNAF(l);c=I.constTimeNegate(g,c),h=I.constTimeNegate(f,h),h=new A(X.mul(h.px,E.beta),h.py,h.pz),T=c.add(h),F=d.add(W0)}else{let{p:g,f:k}=this.wNAF(O);T=g,F=k}return A.normalizeZ([T,F])[0]}multiplyAndAddUnsafe(w,O,T){let F=A.BASE,E=(k,f)=>f===a4||f===k5||!k.equals(F)?k.multiplyUnsafe(f):k.multiply(f),g=E(this,O).add(E(w,T));return g.is0()?void 0:g}toAffine(w){let{px:O,py:T,pz:F}=this,E=this.is0();if(w==null)w=E?X.ONE:X.inv(F);let g=X.mul(O,w),k=X.mul(T,w),f=X.mul(F,w);if(E)return{x:X.ZERO,y:X.ZERO};if(!X.eql(f,X.ONE))throw Error("invZ was invalid");return{x:g,y:k}}isTorsionFree(){let{h:w,isTorsionFree:O}=G;if(w===k5)return!0;if(O)return O(A,this);throw Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){let{h:w,clearCofactor:O}=G;if(w===k5)return this;if(O)return O(A,this);return this.multiplyUnsafe(G.h)}toRawBytes(w=!0){return this.assertValidity(),Y(A,this,w)}toHex(w=!0){return xG(this.toRawBytes(w))}}A.BASE=new A(G.Gx,G.Gy,X.ONE),A.ZERO=new A(X.ZERO,X.ONE,X.ZERO);let H=G.nBitLength,I=nk(A,G.endo?Math.ceil(H/2):H);return{CURVE:G,ProjectivePoint:A,normPrivateKeyToScalar:Q,weierstrassEquation:Z,isWithinCurveOrder:V}}function Is(W){let G=_O(W);return NW(G,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...G})}function rk(W){let G=Is(W),{Fp:X,n:Y}=G,J=X.BYTES+1,Z=2*X.BYTES+1;function V(B){return a4<B&&B<X.ORDER}function U(B){return E9(B,Y)}function Q(B){return dH(B,Y)}let{ProjectivePoint:N,normPrivateKeyToScalar:q,weierstrassEquation:A,isWithinCurveOrder:H}=zs({...G,toBytes(B,m,t){let o=m.toAffine(),$=X.toBytes(o.x),S=XJ;if(t)return S(Uint8Array.from([m.hasEvenY()?2:3]),$);else return S(Uint8Array.from([4]),$,X.toBytes(o.y))},fromBytes(B){let m=B.length,t=B[0],o=B.subarray(1);if(m===J&&(t===2||t===3)){let $=r4(o);if(!V($))throw Error("Point is not on curve");let S=A($),v=X.sqrt(S),_=(v&k5)===k5;if((t&1)===1!==_)v=X.neg(v);return{x:$,y:v}}else if(m===Z&&t===4){let $=X.fromBytes(o.subarray(0,X.BYTES)),S=X.fromBytes(o.subarray(X.BYTES,2*X.BYTES));return{x:$,y:S}}else throw Error(`Point of length ${m} was invalid. Expected ${J} compressed bytes or ${Z} uncompressed bytes`)}}),I=(B)=>xG(QW(B,G.nByteLength));function w(B){let m=Y>>k5;return B>m}function O(B){return w(B)?U(-B):B}let T=(B,m,t)=>r4(B.slice(m,t));class F{constructor(B,m,t){this.r=B,this.s=m,this.recovery=t,this.assertValidity()}static fromCompact(B){let m=G.nByteLength;return B=z5("compactSignature",B,m*2),new F(T(B,0,m),T(B,m,2*m))}static fromDER(B){let{r:m,s:t}=yG.toSig(z5("DER",B));return new F(m,t)}assertValidity(){if(!H(this.r))throw Error("r must be 0 < r < CURVE.n");if(!H(this.s))throw Error("s must be 0 < s < CURVE.n")}addRecoveryBit(B){return new F(this.r,this.s,B)}recoverPublicKey(B){let{r:m,s:t,recovery:o}=this,$=c(z5("msgHash",B));if(o==null||![0,1,2,3].includes(o))throw Error("recovery id invalid");let S=o===2||o===3?m+G.n:m;if(S>=X.ORDER)throw Error("recovery id 2 or 3 invalid");let v=(o&1)===0?"02":"03",_=N.fromHex(v+I(S)),P=Q(S),b=U(-$*P),Z0=U(t*P),U0=N.BASE.multiplyAndAddUnsafe(_,b,Z0);if(!U0)throw Error("point at infinify");return U0.assertValidity(),U0}hasHighS(){return w(this.s)}normalizeS(){return this.hasHighS()?new F(this.r,U(-this.s),this.recovery):this}toDERRawBytes(){return kG(this.toDERHex())}toDERHex(){return yG.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return kG(this.toCompactHex())}toCompactHex(){return I(this.r)+I(this.s)}}let E={isValidPrivateKey(B){try{return q(B),!0}catch(m){return!1}},normPrivateKeyToScalar:q,randomPrivateKey:()=>{let B=xO(G.n);return ok(G.randomBytes(B),G.n)},precompute(B=8,m=N.BASE){return m._setWindowSize(B),m.multiply(BigInt(3)),m}};function g(B,m=!0){return N.fromPrivateKey(B).toRawBytes(m)}function k(B){let m=B instanceof Uint8Array,t=typeof B==="string",o=(m||t)&&B.length;if(m)return o===J||o===Z;if(t)return o===2*J||o===2*Z;if(B instanceof N)return!0;return!1}function f(B,m,t=!0){if(k(B))throw Error("first arg must be private key");if(!k(m))throw Error("second arg must be public key");return N.fromHex(m).multiply(q(B)).toRawBytes(t)}let l=G.bits2int||function(B){let m=r4(B),t=B.length*8-G.nBitLength;return t>0?m>>BigInt(t):m},c=G.bits2int_modN||function(B){return U(l(B))},d=CU(G.nBitLength);function h(B){if(typeof B!=="bigint")throw Error("bigint expected");if(!(a4<=B&&B<d))throw Error(`bigint expected < 2^${G.nBitLength}`);return QW(B,G.nByteLength)}function W0(B,m,t=H0){if(["recovered","canonical"].some((g0)=>(g0 in t)))throw Error("sign() legacy options not supported");let{hash:o,randomBytes:$}=G,{lowS:S,prehash:v,extraEntropy:_}=t;if(S==null)S=!0;if(B=z5("msgHash",B),v)B=z5("prehashed msgHash",o(B));let P=c(B),b=q(m),Z0=[h(b),h(P)];if(_!=null){let g0=_===!0?$(X.BYTES):_;Z0.push(z5("extraEntropy",g0))}let U0=XJ(...Z0),N0=P;function B0(g0){let Q1=l(g0);if(!H(Q1))return;let g1=Q(Q1),_0=N.BASE.multiply(Q1).toAffine(),u1=U(_0.x);if(u1===a4)return;let B1=U(g1*U(N0+u1*b));if(B1===a4)return;let p=(_0.x===u1?0:2)|Number(_0.y&k5),J0=B1;if(S&&w(B1))J0=O(B1),p^=1;return new F(u1,J0,p)}return{seed:U0,k2sig:B0}}let H0={lowS:G.lowS,prehash:!1},y={lowS:G.lowS,prehash:!1};function r(B,m,t=H0){let{seed:o,k2sig:$}=W0(B,m,t),S=G;return BO(S.hash.outputLen,S.nByteLength,S.hmac)(o,$)}N.BASE._setWindowSize(8);function L(B,m,t,o=y){let $=B;if(m=z5("msgHash",m),t=z5("publicKey",t),"strict"in o)throw Error("options.strict was renamed to lowS");let{lowS:S,prehash:v}=o,_=void 0,P;try{if(typeof $==="string"||$ instanceof Uint8Array)try{_=F.fromDER($)}catch(_0){if(!(_0 instanceof yG.Err))throw _0;_=F.fromCompact($)}else if(typeof $==="object"&&typeof $.r==="bigint"&&typeof $.s==="bigint"){let{r:_0,s:u1}=$;_=new F(_0,u1)}else throw Error("PARSE");P=N.fromHex(t)}catch(_0){if(_0.message==="PARSE")throw Error("signature must be Signature instance, Uint8Array or hex string");return!1}if(S&&_.hasHighS())return!1;if(v)m=G.hash(m);let{r:b,s:Z0}=_,U0=c(m),N0=Q(Z0),B0=U(U0*N0),g0=U(b*N0),Q1=N.BASE.multiplyAndAddUnsafe(P,B0,g0)?.toAffine();if(!Q1)return!1;return U(Q1.x)===b}return{CURVE:G,getPublicKey:g,getSharedSecret:f,sign:r,verify:L,ProjectivePoint:N,Signature:F,utils:E}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function ws(W){return{hash:W,hmac:(G,...X)=>DU(W,G,ax(...X)),randomBytes:sx}}function ak(W,G){let X=(Y)=>rk({...W,...ws(Y)});return Object.freeze({...X(G),create:X})}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var ek=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),sk=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),js=BigInt(1),yO=BigInt(2),tk=(W,G)=>(W+G/yO)/G;function Ks(W){let G=ek,X=BigInt(3),Y=BigInt(6),J=BigInt(11),Z=BigInt(22),V=BigInt(23),U=BigInt(44),Q=BigInt(88),N=W*W*W%G,q=N*N*W%G,A=I5(q,X,G)*q%G,H=I5(A,X,G)*q%G,I=I5(H,yO,G)*N%G,w=I5(I,J,G)*I%G,O=I5(w,Z,G)*w%G,T=I5(O,U,G)*O%G,F=I5(T,Q,G)*T%G,E=I5(F,U,G)*O%G,g=I5(E,X,G)*q%G,k=I5(g,V,G)*w%G,f=I5(k,Y,G)*N%G,l=I5(f,yO,G);if(!vO.eql(vO.sqr(l),W))throw Error("Cannot find square root");return l}var vO=lk(ek,void 0,void 0,{sqrt:Ks}),s4=ak({a:BigInt(0),b:BigInt(7),Fp:vO,n:sk,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:(W)=>{let G=sk,X=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),Y=-js*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),J=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),Z=X,V=BigInt("0x100000000000000000000000000000000"),U=tk(Z*W,G),Q=tk(-Y*W,G),N=E9(W-U*X-Q*J,G),q=E9(-U*Y-Q*Z,G),A=N>V,H=q>V;if(A)N=G-N;if(H)q=G-q;if(N>V||q>V)throw Error("splitScalar: Endomorphism failed, k="+W);return{k1neg:A,k1:N,k2neg:H,k2:q}}}},OU),$j0=BigInt(0);var Fj0=s4.ProjectivePoint;var gO="0x0000000000000000000000000000000000000000";var oH="0x0000000000000000000000000000000000000000000000000000000000000000";var uO=`\x19Ethereum Signed Message:
249
249
  `;var W_=BigInt(0),G_=BigInt(1),X_=BigInt(2),Y_=BigInt(27),J_=BigInt(28),nH=BigInt(35),YJ={};function Z_(W){return A5(H8(W),32)}class C8{#W;#G;#X;#Y;get r(){return this.#W}set r(W){s(n4(W)===32,"invalid r","value",W),this.#W=C0(W)}get s(){return s(parseInt(this.#G.substring(0,3))<8,"non-canonical s; use ._s","s",this.#G),this.#G}set s(W){s(n4(W)===32,"invalid s","value",W),this.#G=C0(W)}get _s(){return this.#G}isValid(){return parseInt(this.#G.substring(0,3))<8}get v(){return this.#X}set v(W){let G=a8(W,"value");s(G===27||G===28,"invalid v","v",W),this.#X=G}get networkV(){return this.#Y}get legacyChainId(){let W=this.networkV;if(W==null)return null;return C8.getChainId(W)}get yParity(){return this.v===27?0:1}get yParityAndS(){let W=E0(this.s);if(this.yParity)W[0]|=128;return C0(W)}get compactSerialized(){return W8([this.r,this.yParityAndS])}get serialized(){return W8([this.r,this.s,this.yParity?"0x1c":"0x1b"])}constructor(W,G,X,Y){o4(W,YJ,"Signature"),this.#W=G,this.#G=X,this.#X=Y,this.#Y=null}[Symbol.for("nodejs.util.inspect.custom")](){return`Signature { r: "${this.r}", s: "${this._s}"${this.isValid()?"":', valid: "false"'}, yParity: ${this.yParity}, networkV: ${this.networkV} }`}clone(){let W=new C8(YJ,this.r,this._s,this.v);if(this.networkV)W.#Y=this.networkV;return W}toJSON(){let W=this.networkV;return{_type:"signature",networkV:W!=null?W.toString():null,r:this.r,s:this._s,v:this.v}}static getChainId(W){let G=m1(W,"v");if(G==Y_||G==J_)return W_;return s(G>=nH,"invalid EIP-155 v","v",W),(G-nH)/X_}static getChainIdV(W,G){return m1(W)*X_+BigInt(35+G-27)}static getNormalizedV(W){let G=m1(W);if(G===W_||G===Y_)return 27;if(G===G_||G===J_)return 28;return s(G>=nH,"invalid v","v",W),G&G_?27:28}static from(W){function G(Q,N){s(Q,N,"signature",W)}if(W==null)return new C8(YJ,oH,oH,27);if(typeof W==="string"){let Q=E0(W,"signature");if(Q.length===64){let N=C0(Q.slice(0,32)),q=Q.slice(32,64),A=q[0]&128?28:27;return q[0]&=127,new C8(YJ,N,C0(q),A)}if(Q.length===65){let N=C0(Q.slice(0,32)),q=C0(Q.slice(32,64)),A=C8.getNormalizedV(Q[64]);return new C8(YJ,N,q,A)}G(!1,"invalid raw signature length")}if(W instanceof C8)return W.clone();let X=W.r;G(X!=null,"missing r");let Y=Z_(X),J=function(Q,N){if(Q!=null)return Z_(Q);if(N!=null){G(R9(N,32),"invalid yParityAndS");let q=E0(N);return q[0]&=127,C0(q)}G(!1,"missing s")}(W.s,W.yParityAndS),{networkV:Z,v:V}=function(Q,N,q){if(Q!=null){let A=m1(Q);return{networkV:A>=nH?A:void 0,v:C8.getNormalizedV(A)}}if(N!=null)return G(R9(N,32),"invalid yParityAndS"),{v:E0(N)[0]&128?28:27};if(q!=null){switch(a8(q,"sig.yParity")){case 0:return{v:27};case 1:return{v:28}}G(!1,"invalid yParity")}G(!1,"missing v")}(W.v,W.yParityAndS,W.yParity),U=new C8(YJ,Y,J,V);if(Z)U.#Y=Z;return G(W.yParity==null||a8(W.yParity,"sig.yParity")===U.yParity,"yParity mismatch"),G(W.yParityAndS==null||W.yParityAndS===U.yParityAndS,"yParityAndS mismatch"),U}}class n8{#W;constructor(W){s(n4(W)===32,"invalid private key","privateKey","[REDACTED]"),this.#W=C0(W)}get privateKey(){return this.#W}get publicKey(){return n8.computePublicKey(this.#W)}get compressedPublicKey(){return n8.computePublicKey(this.#W,!0)}sign(W){s(n4(W)===32,"invalid digest length","digest",W);let G=s4.sign(U7(W),U7(this.#W),{lowS:!0});return C8.from({r:Q7(G.r,32),s:Q7(G.s,32),v:G.recovery?28:27})}computeSharedSecret(W){let G=n8.computePublicKey(W);return C0(s4.getSharedSecret(U7(this.#W),E0(G),!1))}static computePublicKey(W,G){let X=E0(W,"key");if(X.length===32){let J=s4.getPublicKey(X,!!G);return C0(J)}if(X.length===64){let J=new Uint8Array(65);J[0]=4,J.set(X,1),X=J}let Y=s4.ProjectivePoint.fromHex(X);return C0(Y.toRawBytes(G))}static recoverPublicKey(W,G){s(n4(W)===32,"invalid digest length","digest",W);let X=C8.from(G),Y=s4.Signature.fromCompact(U7(W8([X.r,X.s])));Y=Y.addRecoveryBit(X.yParity);let J=Y.recoverPublicKey(U7(W));return s(J!=null,"invalid signature for digest","signature",G),"0x"+J.toHex(!1)}static addPoints(W,G,X){let Y=s4.ProjectivePoint.fromHex(n8.computePublicKey(W).substring(2)),J=s4.ProjectivePoint.fromHex(n8.computePublicKey(G).substring(2));return"0x"+Y.add(J).toHex(!!X)}}var Os=BigInt(0),Ds=BigInt(36);function V_(W){W=W.toLowerCase();let G=W.substring(2).split(""),X=new Uint8Array(40);for(let J=0;J<40;J++)X[J]=G[J].charCodeAt(0);let Y=E0(Z8(X));for(let J=0;J<40;J+=2){if(Y[J>>1]>>4>=8)G[J]=G[J].toUpperCase();if((Y[J>>1]&15)>=8)G[J+1]=G[J+1].toUpperCase()}return"0x"+G.join("")}var hO={};for(let W=0;W<10;W++)hO[String(W)]=String(W);for(let W=0;W<26;W++)hO[String.fromCharCode(65+W)]=String(10+W);var U_=15;function Cs(W){W=W.toUpperCase(),W=W.substring(4)+W.substring(0,2)+"00";let G=W.split("").map((Y)=>{return hO[Y]}).join("");while(G.length>=U_){let Y=G.substring(0,U_);G=parseInt(Y,10)%97+G.substring(Y.length)}let X=String(98-parseInt(G,10)%97);while(X.length<2)X="0"+X;return X}var Ts=function(){let W={};for(let G=0;G<36;G++){let X="0123456789abcdefghijklmnopqrstuvwxyz"[G];W[X]=BigInt(G)}return W}();function Ms(W){W=W.toLowerCase();let G=Os;for(let X=0;X<W.length;X++)G=G*Ds+Ts[W[X]];return G}function y1(W){if(s(typeof W==="string","invalid address","address",W),W.match(/^(0x)?[0-9a-fA-F]{40}$/)){if(!W.startsWith("0x"))W="0x"+W;let G=V_(W);return s(!W.match(/([A-F].*[a-f])|([a-f].*[A-F])/)||G===W,"bad address checksum","address",W),G}if(W.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)){s(W.substring(2,4)===Cs(W),"bad icap checksum","address",W);let G=Ms(W.substring(4)).toString(16);while(G.length<40)G="0"+G;return V_("0x"+G)}s(!1,"invalid address","address",W)}function mO(W){return W&&typeof W.getAddress==="function"}async function bO(W,G){let X=await G;if(X==null||X==="0x0000000000000000000000000000000000000000")X1(typeof W!=="string","unconfigured name","UNCONFIGURED_NAME",{value:W}),s(!1,"invalid AddressLike value; did not resolve to a value address","target",W);return y1(X)}function t4(W,G){if(typeof W==="string"){if(W.match(/^0x[0-9a-f]{40}$/i))return y1(W);return X1(G!=null,"ENS resolution requires a provider","UNSUPPORTED_OPERATION",{operation:"resolveName"}),bO(W,G.resolveName(W))}else if(mO(W))return bO(W,W.getAddress());else if(W&&typeof W.then==="function")return bO(W,W);s(!1,"unsupported addressable value","target",W)}function fO(W,G){return{address:y1(W),storageKeys:G.map((X,Y)=>{return s(R9(X,32),"invalid slot",`storageKeys[${Y}]`,X),X.toLowerCase()})}}function vG(W){if(Array.isArray(W))return W.map((X,Y)=>{if(Array.isArray(X))return s(X.length===2,"invalid slot set",`value[${Y}]`,X),fO(X[0],X[1]);return s(X!=null&&typeof X==="object","invalid address-slot set","value",W),fO(X.address,X.storageKeys)});s(W!=null&&typeof W==="object","invalid access list","value",W);let G=Object.keys(W).map((X)=>{let Y=W[X].reduce((J,Z)=>{return J[Z]=!0,J},{});return fO(X,Object.keys(Y).sort())});return G.sort((X,Y)=>X.address.localeCompare(Y.address)),G}function Q_(W){return{address:y1(W.address),nonce:m1(W.nonce!=null?W.nonce:0),chainId:m1(W.chainId!=null?W.chainId:0),signature:C8.from(W.signature)}}function e4(W){let G;if(typeof W==="string")G=n8.computePublicKey(W,!1);else G=W.publicKey;return y1(Z8("0x"+G.substring(4)).substring(26))}function TU(W,G){return e4(n8.recoverPublicKey(W,G))}var s8=BigInt(0),Ls=BigInt(2),Bs=BigInt(27),Es=BigInt(28),$s=BigInt(35),Fs=BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),pO=131072;function Ss(W){return{blobToKzgCommitment:(Y)=>{if("computeBlobProof"in W){if("blobToKzgCommitment"in W&&typeof W.blobToKzgCommitment==="function")return E0(W.blobToKzgCommitment(C0(Y)))}else if("blobToKzgCommitment"in W&&typeof W.blobToKzgCommitment==="function")return E0(W.blobToKzgCommitment(Y));if("blobToKZGCommitment"in W&&typeof W.blobToKZGCommitment==="function")return E0(W.blobToKZGCommitment(C0(Y)));s(!1,"unsupported KZG library","kzg",W)},computeBlobKzgProof:(Y,J)=>{if("computeBlobProof"in W&&typeof W.computeBlobProof==="function")return E0(W.computeBlobProof(C0(Y),C0(J)));if("computeBlobKzgProof"in W&&typeof W.computeBlobKzgProof==="function")return W.computeBlobKzgProof(Y,J);if("computeBlobKZGProof"in W&&typeof W.computeBlobKZGProof==="function")return E0(W.computeBlobKZGProof(C0(Y),C0(J)));s(!1,"unsupported KZG library","kzg",W)}}}function N_(W,G){let X=W.toString(16);while(X.length<2)X="0"+X;return X+=B9(G).substring(4),"0x"+X}function JJ(W){if(W==="0x")return null;return y1(W)}function iH(W,G){try{return vG(W)}catch(X){s(!1,X.message,G,W)}}function xs(W,G){try{if(!Array.isArray(W))throw Error("authorizationList: invalid array");let X=[];for(let Y=0;Y<W.length;Y++){let J=W[Y];if(!Array.isArray(J))throw Error(`authorization[${Y}]: invalid array`);if(J.length!==6)throw Error(`authorization[${Y}]: wrong length`);if(!J[1])throw Error(`authorization[${Y}]: null address`);X.push({address:JJ(J[1]),nonce:V8(J[2],"nonce"),chainId:V8(J[0],"chainId"),signature:C8.from({yParity:gG(J[3],"yParity"),r:A5(J[4],32),s:A5(J[5],32)})})}return X}catch(X){s(!1,X.message,G,W)}}function gG(W,G){if(W==="0x")return 0;return a8(W,G)}function V8(W,G){if(W==="0x")return s8;let X=m1(W,G);return s(X<=Fs,"value exceeds uint size",G,X),X}function f1(W,G){let X=m1(W,"value"),Y=H8(X);return s(Y.length<=32,"value too large",`tx.${G}`,X),Y}function rH(W){return vG(W).map((G)=>[G.address,G.storageKeys])}function ks(W){return W.map((G)=>{return[f1(G.chainId,"chainId"),G.address,f1(G.nonce,"nonce"),f1(G.signature.yParity,"yParity"),H8(G.signature.r),H8(G.signature.s)]})}function _s(W,G){s(Array.isArray(W),`invalid ${G}`,"value",W);for(let X=0;X<W.length;X++)s(R9(W[X],32),"invalid ${ param } hash",`value[${X}]`,W[X]);return W}function ys(W){let G=GW(W);s(Array.isArray(G)&&(G.length===9||G.length===6),"invalid field count for legacy transaction","data",W);let X={type:0,nonce:gG(G[0],"nonce"),gasPrice:V8(G[1],"gasPrice"),gasLimit:V8(G[2],"gasLimit"),to:JJ(G[3]),value:V8(G[4],"value"),data:C0(G[5]),chainId:s8};if(G.length===6)return X;let Y=V8(G[6],"v"),J=V8(G[7],"r"),Z=V8(G[8],"s");if(J===s8&&Z===s8)X.chainId=Y;else{let V=(Y-$s)/Ls;if(V<s8)V=s8;X.chainId=V,s(V!==s8||(Y===Bs||Y===Es),"non-canonical legacy v","v",G[6]),X.signature=C8.from({r:A5(G[7],32),s:A5(G[8],32),v:Y})}return X}function vs(W,G){let X=[f1(W.nonce,"nonce"),f1(W.gasPrice||0,"gasPrice"),f1(W.gasLimit,"gasLimit"),W.to||"0x",f1(W.value,"value"),W.data],Y=s8;if(W.chainId!=s8)Y=m1(W.chainId,"tx.chainId"),s(!G||G.networkV==null||G.legacyChainId===Y,"tx.chainId/sig.v mismatch","sig",G);else if(W.signature){let Z=W.signature.legacyChainId;if(Z!=null)Y=Z}if(!G){if(Y!==s8)X.push(H8(Y)),X.push("0x"),X.push("0x");return F5(X)}let J=BigInt(27+G.yParity);if(Y!==s8)J=C8.getChainIdV(Y,G.v);else if(BigInt(G.v)!==J)s(!1,"tx.chainId/sig.v mismatch","sig",G);return X.push(H8(J)),X.push(H8(G.r)),X.push(H8(G.s)),F5(X)}function aH(W,G){let X;try{if(X=gG(G[0],"yParity"),X!==0&&X!==1)throw Error("bad yParity")}catch(V){s(!1,"invalid yParity","yParity",G[0])}let Y=A5(G[1],32),J=A5(G[2],32),Z=C8.from({r:Y,s:J,yParity:X});W.signature=Z}function gs(W){let G=GW(E0(W).slice(1));s(Array.isArray(G)&&(G.length===9||G.length===12),"invalid field count for transaction type: 2","data",C0(W));let X={type:2,chainId:V8(G[0],"chainId"),nonce:gG(G[1],"nonce"),maxPriorityFeePerGas:V8(G[2],"maxPriorityFeePerGas"),maxFeePerGas:V8(G[3],"maxFeePerGas"),gasPrice:null,gasLimit:V8(G[4],"gasLimit"),to:JJ(G[5]),value:V8(G[6],"value"),data:C0(G[7]),accessList:iH(G[8],"accessList")};if(G.length===9)return X;return aH(X,G.slice(9)),X}function us(W,G){let X=[f1(W.chainId,"chainId"),f1(W.nonce,"nonce"),f1(W.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),f1(W.maxFeePerGas||0,"maxFeePerGas"),f1(W.gasLimit,"gasLimit"),W.to||"0x",f1(W.value,"value"),W.data,rH(W.accessList||[])];if(G)X.push(f1(G.yParity,"yParity")),X.push(H8(G.r)),X.push(H8(G.s));return W8(["0x02",F5(X)])}function hs(W){let G=GW(E0(W).slice(1));s(Array.isArray(G)&&(G.length===8||G.length===11),"invalid field count for transaction type: 1","data",C0(W));let X={type:1,chainId:V8(G[0],"chainId"),nonce:gG(G[1],"nonce"),gasPrice:V8(G[2],"gasPrice"),gasLimit:V8(G[3],"gasLimit"),to:JJ(G[4]),value:V8(G[5],"value"),data:C0(G[6]),accessList:iH(G[7],"accessList")};if(G.length===8)return X;return aH(X,G.slice(8)),X}function bs(W,G){let X=[f1(W.chainId,"chainId"),f1(W.nonce,"nonce"),f1(W.gasPrice||0,"gasPrice"),f1(W.gasLimit,"gasLimit"),W.to||"0x",f1(W.value,"value"),W.data,rH(W.accessList||[])];if(G)X.push(f1(G.yParity,"recoveryParam")),X.push(H8(G.r)),X.push(H8(G.s));return W8(["0x01",F5(X)])}function ms(W){let G=GW(E0(W).slice(1)),X="3",Y=null;if(G.length===4&&Array.isArray(G[0])){X="3 (network format)";let Z=G[1],V=G[2],U=G[3];s(Array.isArray(Z),"invalid network format: blobs not an array","fields[1]",Z),s(Array.isArray(V),"invalid network format: commitments not an array","fields[2]",V),s(Array.isArray(U),"invalid network format: proofs not an array","fields[3]",U),s(Z.length===V.length,"invalid network format: blobs/commitments length mismatch","fields",G),s(Z.length===U.length,"invalid network format: blobs/proofs length mismatch","fields",G),Y=[];for(let Q=0;Q<G[1].length;Q++)Y.push({data:Z[Q],commitment:V[Q],proof:U[Q]});G=G[0]}s(Array.isArray(G)&&(G.length===11||G.length===14),`invalid field count for transaction type: ${X}`,"data",C0(W));let J={type:3,chainId:V8(G[0],"chainId"),nonce:gG(G[1],"nonce"),maxPriorityFeePerGas:V8(G[2],"maxPriorityFeePerGas"),maxFeePerGas:V8(G[3],"maxFeePerGas"),gasPrice:null,gasLimit:V8(G[4],"gasLimit"),to:JJ(G[5]),value:V8(G[6],"value"),data:C0(G[7]),accessList:iH(G[8],"accessList"),maxFeePerBlobGas:V8(G[9],"maxFeePerBlobGas"),blobVersionedHashes:G[10]};if(Y)J.blobs=Y;s(J.to!=null,`invalid address for transaction type: ${X}`,"data",W),s(Array.isArray(J.blobVersionedHashes),"invalid blobVersionedHashes: must be an array","data",W);for(let Z=0;Z<J.blobVersionedHashes.length;Z++)s(R9(J.blobVersionedHashes[Z],32),`invalid blobVersionedHash at index ${Z}: must be length 32`,"data",W);if(G.length===11)return J;return aH(J,G.slice(11)),J}function fs(W,G,X){let Y=[f1(W.chainId,"chainId"),f1(W.nonce,"nonce"),f1(W.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),f1(W.maxFeePerGas||0,"maxFeePerGas"),f1(W.gasLimit,"gasLimit"),W.to||gO,f1(W.value,"value"),W.data,rH(W.accessList||[]),f1(W.maxFeePerBlobGas||0,"maxFeePerBlobGas"),_s(W.blobVersionedHashes||[],"blobVersionedHashes")];if(G){if(Y.push(f1(G.yParity,"yParity")),Y.push(H8(G.r)),Y.push(H8(G.s)),X)return W8(["0x03",F5([Y,X.map((J)=>J.data),X.map((J)=>J.commitment),X.map((J)=>J.proof)])])}return W8(["0x03",F5(Y)])}function ps(W){let G=GW(E0(W).slice(1));s(Array.isArray(G)&&(G.length===10||G.length===13),"invalid field count for transaction type: 4","data",C0(W));let X={type:4,chainId:V8(G[0],"chainId"),nonce:gG(G[1],"nonce"),maxPriorityFeePerGas:V8(G[2],"maxPriorityFeePerGas"),maxFeePerGas:V8(G[3],"maxFeePerGas"),gasPrice:null,gasLimit:V8(G[4],"gasLimit"),to:JJ(G[5]),value:V8(G[6],"value"),data:C0(G[7]),accessList:iH(G[8],"accessList"),authorizationList:xs(G[9],"authorizationList")};if(G.length===10)return X;return aH(X,G.slice(10)),X}function cs(W,G){let X=[f1(W.chainId,"chainId"),f1(W.nonce,"nonce"),f1(W.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),f1(W.maxFeePerGas||0,"maxFeePerGas"),f1(W.gasLimit,"gasLimit"),W.to||"0x",f1(W.value,"value"),W.data,rH(W.accessList||[]),ks(W.authorizationList||[])];if(G)X.push(f1(G.yParity,"yParity")),X.push(H8(G.r)),X.push(H8(G.s));return W8(["0x04",F5(X)])}class t9{#W;#G;#X;#Y;#Q;#N;#q;#H;#A;#z;#I;#w;#U;#Z;#J;#V;#j;get type(){return this.#W}set type(W){switch(W){case null:this.#W=null;break;case 0:case"legacy":this.#W=0;break;case 1:case"berlin":case"eip-2930":this.#W=1;break;case 2:case"london":case"eip-1559":this.#W=2;break;case 3:case"cancun":case"eip-4844":this.#W=3;break;case 4:case"pectra":case"eip-7702":this.#W=4;break;default:s(!1,"unsupported transaction type","type",W)}}get typeName(){switch(this.type){case 0:return"legacy";case 1:return"eip-2930";case 2:return"eip-1559";case 3:return"eip-4844";case 4:return"eip-7702"}return null}get to(){let W=this.#G;if(W==null&&this.type===3)return gO;return W}set to(W){this.#G=W==null?null:y1(W)}get nonce(){return this.#Y}set nonce(W){this.#Y=a8(W,"value")}get gasLimit(){return this.#Q}set gasLimit(W){this.#Q=m1(W)}get gasPrice(){let W=this.#N;if(W==null&&(this.type===0||this.type===1))return s8;return W}set gasPrice(W){this.#N=W==null?null:m1(W,"gasPrice")}get maxPriorityFeePerGas(){let W=this.#q;if(W==null){if(this.type===2||this.type===3)return s8;return null}return W}set maxPriorityFeePerGas(W){this.#q=W==null?null:m1(W,"maxPriorityFeePerGas")}get maxFeePerGas(){let W=this.#H;if(W==null){if(this.type===2||this.type===3)return s8;return null}return W}set maxFeePerGas(W){this.#H=W==null?null:m1(W,"maxFeePerGas")}get data(){return this.#X}set data(W){this.#X=C0(W)}get value(){return this.#A}set value(W){this.#A=m1(W,"value")}get chainId(){return this.#z}set chainId(W){this.#z=m1(W)}get signature(){return this.#I||null}set signature(W){this.#I=W==null?null:C8.from(W)}get accessList(){let W=this.#w||null;if(W==null){if(this.type===1||this.type===2||this.type===3)return[];return null}return W}set accessList(W){this.#w=W==null?null:vG(W)}get authorizationList(){let W=this.#j||null;if(W==null){if(this.type===4)return[]}return W}set authorizationList(W){this.#j=W==null?null:W.map((G)=>Q_(G))}get maxFeePerBlobGas(){let W=this.#U;if(W==null&&this.type===3)return s8;return W}set maxFeePerBlobGas(W){this.#U=W==null?null:m1(W,"maxFeePerBlobGas")}get blobVersionedHashes(){let W=this.#Z;if(W==null&&this.type===3)return[];return W}set blobVersionedHashes(W){if(W!=null){s(Array.isArray(W),"blobVersionedHashes must be an Array","value",W),W=W.slice();for(let G=0;G<W.length;G++)s(R9(W[G],32),"invalid blobVersionedHash",`value[${G}]`,W[G])}this.#Z=W}get blobs(){if(this.#V==null)return null;return this.#V.map((W)=>Object.assign({},W))}set blobs(W){if(W==null){this.#V=null;return}let G=[],X=[];for(let Y=0;Y<W.length;Y++){let J=W[Y];if(i7(J)){X1(this.#J,"adding a raw blob requires a KZG library","UNSUPPORTED_OPERATION",{operation:"set blobs()"});let Z=E0(J);if(s(Z.length<=pO,"blob is too large",`blobs[${Y}]`,J),Z.length!==pO){let Q=new Uint8Array(pO);Q.set(Z),Z=Q}let V=this.#J.blobToKzgCommitment(Z),U=C0(this.#J.computeBlobKzgProof(Z,V));G.push({data:C0(Z),commitment:C0(V),proof:U}),X.push(N_(1,V))}else{let Z=C0(J.commitment);G.push({data:C0(J.data),commitment:Z,proof:C0(J.proof)}),X.push(N_(1,Z))}}this.#V=G,this.#Z=X}get kzg(){return this.#J}set kzg(W){if(W==null)this.#J=null;else this.#J=Ss(W)}constructor(){this.#W=null,this.#G=null,this.#Y=0,this.#Q=s8,this.#N=null,this.#q=null,this.#H=null,this.#X="0x",this.#A=s8,this.#z=s8,this.#I=null,this.#w=null,this.#U=null,this.#Z=null,this.#J=null,this.#V=null,this.#j=null}get hash(){if(this.signature==null)return null;return Z8(this.#K(!0,!1))}get unsignedHash(){return Z8(this.unsignedSerialized)}get from(){if(this.signature==null)return null;return TU(this.unsignedHash,this.signature)}get fromPublicKey(){if(this.signature==null)return null;return n8.recoverPublicKey(this.unsignedHash,this.signature)}isSigned(){return this.signature!=null}#K(W,G){X1(!W||this.signature!=null,"cannot serialize unsigned transaction; maybe you meant .unsignedSerialized","UNSUPPORTED_OPERATION",{operation:".serialized"});let X=W?this.signature:null;switch(this.inferType()){case 0:return vs(this,X);case 1:return bs(this,X);case 2:return us(this,X);case 3:return fs(this,X,G?this.blobs:null);case 4:return cs(this,X)}X1(!1,"unsupported transaction type","UNSUPPORTED_OPERATION",{operation:".serialized"})}get serialized(){return this.#K(!0,!0)}get unsignedSerialized(){return this.#K(!1,!1)}inferType(){let W=this.inferTypes();if(W.indexOf(2)>=0)return 2;return W.pop()}inferTypes(){let W=this.gasPrice!=null,G=this.maxFeePerGas!=null||this.maxPriorityFeePerGas!=null,X=this.accessList!=null,Y=this.#U!=null||this.#Z;if(this.maxFeePerGas!=null&&this.maxPriorityFeePerGas!=null)X1(this.maxFeePerGas>=this.maxPriorityFeePerGas,"priorityFee cannot be more than maxFee","BAD_DATA",{value:this});X1(!G||this.type!==0&&this.type!==1,"transaction type cannot have maxFeePerGas or maxPriorityFeePerGas","BAD_DATA",{value:this}),X1(this.type!==0||!X,"legacy transaction cannot have accessList","BAD_DATA",{value:this});let J=[];if(this.type!=null)J.push(this.type);else if(this.authorizationList&&this.authorizationList.length)J.push(4);else if(G)J.push(2);else if(W){if(J.push(1),!X)J.push(0)}else if(X)J.push(1),J.push(2);else if(Y&&this.to)J.push(3);else J.push(0),J.push(1),J.push(2),J.push(3);return J.sort(),J}isLegacy(){return this.type===0}isBerlin(){return this.type===1}isLondon(){return this.type===2}isCancun(){return this.type===3}clone(){return t9.from(this)}toJSON(){let W=(G)=>{if(G==null)return null;return G.toString()};return{type:this.type,to:this.to,data:this.data,nonce:this.nonce,gasLimit:W(this.gasLimit),gasPrice:W(this.gasPrice),maxPriorityFeePerGas:W(this.maxPriorityFeePerGas),maxFeePerGas:W(this.maxFeePerGas),value:W(this.value),chainId:W(this.chainId),sig:this.signature?this.signature.toJSON():null,accessList:this.accessList}}static from(W){if(W==null)return new t9;if(typeof W==="string"){let X=E0(W);if(X[0]>=127)return t9.from(ys(X));switch(X[0]){case 1:return t9.from(hs(X));case 2:return t9.from(gs(X));case 3:return t9.from(ms(X));case 4:return t9.from(ps(X))}X1(!1,"unsupported transaction type","UNSUPPORTED_OPERATION",{operation:"from"})}let G=new t9;if(W.type!=null)G.type=W.type;if(W.to!=null)G.to=W.to;if(W.nonce!=null)G.nonce=W.nonce;if(W.gasLimit!=null)G.gasLimit=W.gasLimit;if(W.gasPrice!=null)G.gasPrice=W.gasPrice;if(W.maxPriorityFeePerGas!=null)G.maxPriorityFeePerGas=W.maxPriorityFeePerGas;if(W.maxFeePerGas!=null)G.maxFeePerGas=W.maxFeePerGas;if(W.maxFeePerBlobGas!=null)G.maxFeePerBlobGas=W.maxFeePerBlobGas;if(W.data!=null)G.data=W.data;if(W.value!=null)G.value=W.value;if(W.chainId!=null)G.chainId=W.chainId;if(W.signature!=null)G.signature=C8.from(W.signature);if(W.accessList!=null)G.accessList=W.accessList;if(W.authorizationList!=null)G.authorizationList=W.authorizationList;if(W.blobVersionedHashes!=null)G.blobVersionedHashes=W.blobVersionedHashes;if(W.kzg!=null)G.kzg=W.kzg;if(W.blobs!=null)G.blobs=W.blobs;if(W.hash!=null)s(G.isSigned(),"unsigned transaction cannot define '.hash'","tx",W),s(G.hash===W.hash,"hash mismatch","tx",W);if(W.from!=null)s(G.isSigned(),"unsigned transaction cannot define '.from'","tx",W),s(G.from.toLowerCase()===(W.from||"").toLowerCase(),"from mismatch","tx",W);return G}}function sH(W){return s(typeof W.address==="string","invalid address for hashAuthorization","auth.address",W),Z8(W8(["0x05",F5([W.chainId!=null?H8(W.chainId):"0x",y1(W.address),W.nonce!=null?H8(W.nonce):"0x"])]))}function W6(W){return Z8(U9(W))}function MU(W){if(typeof W==="string")W=U9(W);return Z8(W8([U9(uO),U9(String(W.length)),W]))}function PU(W,G){let X=MU(W);return TU(X,G)}var z_=new Uint8Array(32);z_.fill(0);var ls=BigInt(-1),I_=BigInt(0),w_=BigInt(1),ds=BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");function os(W){let G=E0(W),X=G.length%32;if(X)return W8([G,z_.slice(X)]);return C0(G)}var ns=Q7(w_,32),is=Q7(I_,32),q_={name:"string",version:"string",chainId:"uint256",verifyingContract:"address",salt:"bytes32"},cO=["name","version","chainId","verifyingContract","salt"];function H_(W){return function(G){return s(typeof G==="string",`invalid domain value for ${JSON.stringify(W)}`,`domain.${W}`,G),G}}var rs={name:H_("name"),version:H_("version"),chainId:function(W){let G=m1(W,"domain.chainId");if(s(G>=0,"invalid chain ID","domain.chainId",W),Number.isSafeInteger(G))return Number(G);return BH(G)},verifyingContract:function(W){try{return y1(W).toLowerCase()}catch(G){}s(!1,'invalid domain value "verifyingContract"',"domain.verifyingContract",W)},salt:function(W){let G=E0(W,"domain.salt");return s(G.length===32,'invalid domain value "salt"',"domain.salt",W),C0(G)}};function lO(W){{let G=W.match(/^(u?)int(\d+)$/);if(G){let X=G[1]==="",Y=parseInt(G[2]);s(Y%8===0&&Y!==0&&Y<=256&&G[2]===String(Y),"invalid numeric width","type",W);let J=LH(ds,X?Y-1:Y),Z=X?(J+w_)*ls:I_;return function(V){let U=m1(V,"value");return s(U>=Z&&U<=J,`value out-of-bounds for ${W}`,"value",U),Q7(X?RH(U,256):U,32)}}}{let G=W.match(/^bytes(\d+)$/);if(G){let X=parseInt(G[1]);return s(X!==0&&X<=32&&G[1]===String(X),"invalid bytes width","type",W),function(Y){let J=E0(Y);return s(J.length===X,`invalid length for ${W}`,"value",Y),os(Y)}}}switch(W){case"address":return function(G){return A5(y1(G),32)};case"bool":return function(G){return!G?is:ns};case"bytes":return function(G){return Z8(G)};case"string":return function(G){return W6(G)}}return null}function A_(W,G){return`${W}(${G.map(({name:X,type:Y})=>Y+" "+X).join(",")})`}function tH(W){let G=W.match(/^([^\x5b]*)((\x5b\d*\x5d)*)(\x5b(\d*)\x5d)$/);if(G)return{base:G[1],index:G[2]+G[4],array:{base:G[1],prefix:G[1]+G[2],count:G[5]?parseInt(G[5]):-1}};return{base:W}}class $9{primaryType;#W;get types(){return JSON.parse(this.#W)}#G;#X;constructor(W){this.#G=new Map,this.#X=new Map;let G=new Map,X=new Map,Y=new Map,J={};Object.keys(W).forEach((U)=>{J[U]=W[U].map(({name:Q,type:N})=>{let{base:q,index:A}=tH(N);if(q==="int"&&!W.int)q="int256";if(q==="uint"&&!W.uint)q="uint256";return{name:Q,type:q+(A||"")}}),G.set(U,new Set),X.set(U,[]),Y.set(U,new Set)}),this.#W=JSON.stringify(J);for(let U in J){let Q=new Set;for(let N of J[U]){s(!Q.has(N.name),`duplicate variable name ${JSON.stringify(N.name)} in ${JSON.stringify(U)}`,"types",W),Q.add(N.name);let q=tH(N.type).base;if(s(q!==U,`circular type reference to ${JSON.stringify(q)}`,"types",W),lO(q))continue;s(X.has(q),`unknown type ${JSON.stringify(q)}`,"types",W),X.get(q).push(U),G.get(U).add(q)}}let Z=Array.from(X.keys()).filter((U)=>X.get(U).length===0);s(Z.length!==0,"missing primary type","types",W),s(Z.length===1,`ambiguous primary types or unused types: ${Z.map((U)=>JSON.stringify(U)).join(", ")}`,"types",W),q8(this,{primaryType:Z[0]});function V(U,Q){s(!Q.has(U),`circular type reference to ${JSON.stringify(U)}`,"types",W),Q.add(U);for(let N of G.get(U)){if(!X.has(N))continue;V(N,Q);for(let q of Q)Y.get(q).add(N)}Q.delete(U)}V(this.primaryType,new Set);for(let[U,Q]of Y){let N=Array.from(Q);N.sort(),this.#G.set(U,A_(U,J[U])+N.map((q)=>A_(q,J[q])).join(""))}}getEncoder(W){let G=this.#X.get(W);if(!G)G=this.#Y(W),this.#X.set(W,G);return G}#Y(W){{let Y=lO(W);if(Y)return Y}let G=tH(W).array;if(G){let Y=G.prefix,J=this.getEncoder(Y);return(Z)=>{s(G.count===-1||G.count===Z.length,`array length mismatch; expected length ${G.count}`,"value",Z);let V=Z.map(J);if(this.#G.has(Y))V=V.map(Z8);return Z8(W8(V))}}let X=this.types[W];if(X){let Y=W6(this.#G.get(W));return(J)=>{let Z=X.map(({name:V,type:U})=>{let Q=this.getEncoder(U)(J[V]);if(this.#G.has(U))return Z8(Q);return Q});return Z.unshift(Y),W8(Z)}}s(!1,`unknown type: ${W}`,"type",W)}encodeType(W){let G=this.#G.get(W);return s(G,`unknown type: ${JSON.stringify(W)}`,"name",W),G}encodeData(W,G){return this.getEncoder(W)(G)}hashStruct(W,G){return Z8(this.encodeData(W,G))}encode(W){return this.encodeData(this.primaryType,W)}hash(W){return this.hashStruct(this.primaryType,W)}_visit(W,G,X){if(lO(W))return X(W,G);let Y=tH(W).array;if(Y)return s(Y.count===-1||Y.count===G.length,`array length mismatch; expected length ${Y.count}`,"value",G),G.map((Z)=>this._visit(Y.prefix,Z,X));let J=this.types[W];if(J)return J.reduce((Z,{name:V,type:U})=>{return Z[V]=this._visit(U,G[V],X),Z},{});s(!1,`unknown type: ${W}`,"type",W)}visit(W,G){return this._visit(this.primaryType,W,G)}static from(W){return new $9(W)}static getPrimaryType(W){return $9.from(W).primaryType}static hashStruct(W,G,X){return $9.from(G).hashStruct(W,X)}static hashDomain(W){let G=[];for(let X in W){if(W[X]==null)continue;let Y=q_[X];s(Y,`invalid typed-data domain key: ${JSON.stringify(X)}`,"domain",W),G.push({name:X,type:Y})}return G.sort((X,Y)=>{return cO.indexOf(X.name)-cO.indexOf(Y.name)}),$9.hashStruct("EIP712Domain",{EIP712Domain:G},W)}static encode(W,G,X){return W8(["0x1901",$9.hashDomain(W),$9.from(G).hash(X)])}static hash(W,G,X){return Z8($9.encode(W,G,X))}static async resolveNames(W,G,X,Y){W=Object.assign({},W);for(let V in W)if(W[V]==null)delete W[V];let J={};if(W.verifyingContract&&!R9(W.verifyingContract,20))J[W.verifyingContract]="0x";let Z=$9.from(G);Z.visit(X,(V,U)=>{if(V==="address"&&!R9(U,20))J[U]="0x";return U});for(let V in J)J[V]=await Y(V);if(W.verifyingContract&&J[W.verifyingContract])W.verifyingContract=J[W.verifyingContract];return X=Z.visit(X,(V,U)=>{if(V==="address"&&J[U])return J[U];return U}),{domain:W,value:X}}static getPayload(W,G,X){$9.hashDomain(W);let Y={},J=[];cO.forEach((U)=>{let Q=W[U];if(Q==null)return;Y[U]=rs[U](Q),J.push({name:U,type:q_[U]})});let Z=$9.from(G);G=Z.types;let V=Object.assign({},G);return s(V.EIP712Domain==null,"types must not contain EIP712Domain type","types.EIP712Domain",G),V.EIP712Domain=J,Z.encode(X),{types:V,domain:Y,primaryType:Z.primaryType,message:Z.visit(X,(U,Q)=>{if(U.match(/^bytes(\d*)/))return C0(E0(Q));if(U.match(/^u?int/))return m1(Q).toString();switch(U){case"address":return Q.toLowerCase();case"bool":return!!Q;case"string":return s(typeof Q==="string","invalid string","value",Q),Q}s(!1,"unsupported type","type",U)})}}}var j_=BigInt(0);function dO(W){if(W==null)return null;return W}function t8(W){if(W==null)return null;return W.toString()}function RU(W){let G={};if(W.to)G.to=W.to;if(W.from)G.from=W.from;if(W.data)G.data=C0(W.data);let X="chainId,gasLimit,gasPrice,maxFeePerBlobGas,maxFeePerGas,maxPriorityFeePerGas,value".split(/,/);for(let J of X){if(!(J in W)||W[J]==null)continue;G[J]=m1(W[J],`request.${J}`)}let Y="type,nonce".split(/,/);for(let J of Y){if(!(J in W)||W[J]==null)continue;G[J]=a8(W[J],`request.${J}`)}if(W.accessList)G.accessList=vG(W.accessList);if(W.authorizationList)G.authorizationList=W.authorizationList.slice();if("blockTag"in W)G.blockTag=W.blockTag;if("enableCcipRead"in W)G.enableCcipRead=!!W.enableCcipRead;if("customData"in W)G.customData=W.customData;if("blobVersionedHashes"in W&&W.blobVersionedHashes)G.blobVersionedHashes=W.blobVersionedHashes.slice();if("kzg"in W)G.kzg=W.kzg;if("blobs"in W&&W.blobs)G.blobs=W.blobs.map((J)=>{if(i7(J))return C0(J);return Object.assign({},J)});return G}class K_{provider;number;hash;timestamp;parentHash;parentBeaconBlockRoot;nonce;difficulty;gasLimit;gasUsed;stateRoot;receiptsRoot;blobGasUsed;excessBlobGas;miner;prevRandao;extraData;baseFeePerGas;#W;constructor(W,G){this.#W=W.transactions.map((X)=>{if(typeof X!=="string")return new eH(X,G);return X}),q8(this,{provider:G,hash:dO(W.hash),number:W.number,timestamp:W.timestamp,parentHash:W.parentHash,parentBeaconBlockRoot:W.parentBeaconBlockRoot,nonce:W.nonce,difficulty:W.difficulty,gasLimit:W.gasLimit,gasUsed:W.gasUsed,blobGasUsed:W.blobGasUsed,excessBlobGas:W.excessBlobGas,miner:W.miner,prevRandao:dO(W.prevRandao),extraData:W.extraData,baseFeePerGas:dO(W.baseFeePerGas),stateRoot:W.stateRoot,receiptsRoot:W.receiptsRoot})}get transactions(){return this.#W.map((W)=>{if(typeof W==="string")return W;return W.hash})}get prefetchedTransactions(){let W=this.#W.slice();if(W.length===0)return[];return X1(typeof W[0]==="object","transactions were not prefetched with block request","UNSUPPORTED_OPERATION",{operation:"transactionResponses()"}),W}toJSON(){let{baseFeePerGas:W,difficulty:G,extraData:X,gasLimit:Y,gasUsed:J,hash:Z,miner:V,prevRandao:U,nonce:Q,number:N,parentHash:q,parentBeaconBlockRoot:A,stateRoot:H,receiptsRoot:I,timestamp:w,transactions:O}=this;return{_type:"Block",baseFeePerGas:t8(W),difficulty:t8(G),extraData:X,gasLimit:t8(Y),gasUsed:t8(J),blobGasUsed:t8(this.blobGasUsed),excessBlobGas:t8(this.excessBlobGas),hash:Z,miner:V,prevRandao:U,nonce:Q,number:N,parentHash:q,timestamp:w,parentBeaconBlockRoot:A,stateRoot:H,receiptsRoot:I,transactions:O}}[Symbol.iterator](){let W=0,G=this.transactions;return{next:()=>{if(W<this.length)return{value:G[W++],done:!1};return{value:void 0,done:!0}}}}get length(){return this.#W.length}get date(){if(this.timestamp==null)return null;return new Date(this.timestamp*1000)}async getTransaction(W){let G=void 0;if(typeof W==="number")G=this.#W[W];else{let X=W.toLowerCase();for(let Y of this.#W)if(typeof Y==="string"){if(Y!==X)continue;G=Y;break}else{if(Y.hash!==X)continue;G=Y;break}}if(G==null)throw Error("no such tx");if(typeof G==="string")return await this.provider.getTransaction(G);else return G}getPrefetchedTransaction(W){let G=this.prefetchedTransactions;if(typeof W==="number")return G[W];W=W.toLowerCase();for(let X of G)if(X.hash===W)return X;s(!1,"no matching transaction","indexOrHash",W)}isMined(){return!!this.hash}isLondon(){return!!this.baseFeePerGas}orphanedEvent(){if(!this.isMined())throw Error("");return ts(this)}}class oO{provider;transactionHash;blockHash;blockNumber;removed;address;data;topics;index;transactionIndex;constructor(W,G){this.provider=G;let X=Object.freeze(W.topics.slice());q8(this,{transactionHash:W.transactionHash,blockHash:W.blockHash,blockNumber:W.blockNumber,removed:W.removed,address:W.address,data:W.data,topics:X,index:W.index,transactionIndex:W.transactionIndex})}toJSON(){let{address:W,blockHash:G,blockNumber:X,data:Y,index:J,removed:Z,topics:V,transactionHash:U,transactionIndex:Q}=this;return{_type:"log",address:W,blockHash:G,blockNumber:X,data:Y,index:J,removed:Z,topics:V,transactionHash:U,transactionIndex:Q}}async getBlock(){let W=await this.provider.getBlock(this.blockHash);return X1(!!W,"failed to find transaction","UNKNOWN_ERROR",{}),W}async getTransaction(){let W=await this.provider.getTransaction(this.transactionHash);return X1(!!W,"failed to find transaction","UNKNOWN_ERROR",{}),W}async getTransactionReceipt(){let W=await this.provider.getTransactionReceipt(this.transactionHash);return X1(!!W,"failed to find transaction receipt","UNKNOWN_ERROR",{}),W}removedEvent(){return es(this)}}class O_{provider;to;from;contractAddress;hash;index;blockHash;blockNumber;logsBloom;gasUsed;blobGasUsed;cumulativeGasUsed;gasPrice;blobGasPrice;type;status;root;#W;constructor(W,G){this.#W=Object.freeze(W.logs.map((Y)=>{return new oO(Y,G)}));let X=j_;if(W.effectiveGasPrice!=null)X=W.effectiveGasPrice;else if(W.gasPrice!=null)X=W.gasPrice;q8(this,{provider:G,to:W.to,from:W.from,contractAddress:W.contractAddress,hash:W.hash,index:W.index,blockHash:W.blockHash,blockNumber:W.blockNumber,logsBloom:W.logsBloom,gasUsed:W.gasUsed,cumulativeGasUsed:W.cumulativeGasUsed,blobGasUsed:W.blobGasUsed,gasPrice:X,blobGasPrice:W.blobGasPrice,type:W.type,status:W.status,root:W.root})}get logs(){return this.#W}toJSON(){let{to:W,from:G,contractAddress:X,hash:Y,index:J,blockHash:Z,blockNumber:V,logsBloom:U,logs:Q,status:N,root:q}=this;return{_type:"TransactionReceipt",blockHash:Z,blockNumber:V,contractAddress:X,cumulativeGasUsed:t8(this.cumulativeGasUsed),from:G,gasPrice:t8(this.gasPrice),blobGasUsed:t8(this.blobGasUsed),blobGasPrice:t8(this.blobGasPrice),gasUsed:t8(this.gasUsed),hash:Y,index:J,logs:Q,logsBloom:U,root:q,status:N,to:W}}get length(){return this.logs.length}[Symbol.iterator](){let W=0;return{next:()=>{if(W<this.length)return{value:this.logs[W++],done:!1};return{value:void 0,done:!0}}}}get fee(){return this.gasUsed*this.gasPrice}async getBlock(){let W=await this.provider.getBlock(this.blockHash);if(W==null)throw Error("TODO");return W}async getTransaction(){let W=await this.provider.getTransaction(this.hash);if(W==null)throw Error("TODO");return W}async getResult(){return await this.provider.getTransactionResult(this.hash)}async confirmations(){return await this.provider.getBlockNumber()-this.blockNumber+1}removedEvent(){return C_(this)}reorderedEvent(W){return X1(!W||W.isMined(),"unmined 'other' transction cannot be orphaned","UNSUPPORTED_OPERATION",{operation:"reorderedEvent(other)"}),D_(this,W)}}class eH{provider;blockNumber;blockHash;index;hash;type;to;from;nonce;gasLimit;gasPrice;maxPriorityFeePerGas;maxFeePerGas;maxFeePerBlobGas;data;value;chainId;signature;accessList;blobVersionedHashes;authorizationList;#W;constructor(W,G){this.provider=G,this.blockNumber=W.blockNumber!=null?W.blockNumber:null,this.blockHash=W.blockHash!=null?W.blockHash:null,this.hash=W.hash,this.index=W.index,this.type=W.type,this.from=W.from,this.to=W.to||null,this.gasLimit=W.gasLimit,this.nonce=W.nonce,this.data=W.data,this.value=W.value,this.gasPrice=W.gasPrice,this.maxPriorityFeePerGas=W.maxPriorityFeePerGas!=null?W.maxPriorityFeePerGas:null,this.maxFeePerGas=W.maxFeePerGas!=null?W.maxFeePerGas:null,this.maxFeePerBlobGas=W.maxFeePerBlobGas!=null?W.maxFeePerBlobGas:null,this.chainId=W.chainId,this.signature=W.signature,this.accessList=W.accessList!=null?W.accessList:null,this.blobVersionedHashes=W.blobVersionedHashes!=null?W.blobVersionedHashes:null,this.authorizationList=W.authorizationList!=null?W.authorizationList:null,this.#W=-1}toJSON(){let{blockNumber:W,blockHash:G,index:X,hash:Y,type:J,to:Z,from:V,nonce:U,data:Q,signature:N,accessList:q,blobVersionedHashes:A}=this;return{_type:"TransactionResponse",accessList:q,blockNumber:W,blockHash:G,blobVersionedHashes:A,chainId:t8(this.chainId),data:Q,from:V,gasLimit:t8(this.gasLimit),gasPrice:t8(this.gasPrice),hash:Y,maxFeePerGas:t8(this.maxFeePerGas),maxPriorityFeePerGas:t8(this.maxPriorityFeePerGas),maxFeePerBlobGas:t8(this.maxFeePerBlobGas),nonce:U,signature:N,to:Z,index:X,type:J,value:t8(this.value)}}async getBlock(){let W=this.blockNumber;if(W==null){let X=await this.getTransaction();if(X)W=X.blockNumber}if(W==null)return null;let G=this.provider.getBlock(W);if(G==null)throw Error("TODO");return G}async getTransaction(){return this.provider.getTransaction(this.hash)}async confirmations(){if(this.blockNumber==null){let{tx:G,blockNumber:X}=await n7({tx:this.getTransaction(),blockNumber:this.provider.getBlockNumber()});if(G==null||G.blockNumber==null)return 0;return X-G.blockNumber+1}return await this.provider.getBlockNumber()-this.blockNumber+1}async wait(W,G){let X=W==null?1:W,Y=G==null?0:G,J=this.#W,Z=-1,V=J===-1?!0:!1,U=async()=>{if(V)return null;let{blockNumber:A,nonce:H}=await n7({blockNumber:this.provider.getBlockNumber(),nonce:this.provider.getTransactionCount(this.from)});if(H<this.nonce){J=A;return}if(V)return null;let I=await this.getTransaction();if(I&&I.blockNumber!=null)return;if(Z===-1){if(Z=J-3,Z<this.#W)Z=this.#W}while(Z<=A){if(V)return null;let w=await this.provider.getBlock(Z,!0);if(w==null)return;for(let O of w)if(O===this.hash)return;for(let O=0;O<w.length;O++){let T=await w.getTransaction(O);if(T.from===this.from&&T.nonce===this.nonce){if(V)return null;let F=await this.provider.getTransactionReceipt(T.hash);if(F==null)return;if(A-F.blockNumber+1<X)return;let E="replaced";if(T.data===this.data&&T.to===this.to&&T.value===this.value)E="repriced";else if(T.data==="0x"&&T.from===T.to&&T.value===j_)E="cancelled";X1(!1,"transaction was replaced","TRANSACTION_REPLACED",{cancelled:E==="replaced"||E==="cancelled",reason:E,replacement:T.replaceableTransaction(J),hash:T.hash,receipt:F})}}Z++}return},Q=(A)=>{if(A==null||A.status!==0)return A;X1(!1,"transaction execution reverted","CALL_EXCEPTION",{action:"sendTransaction",data:null,reason:null,invocation:null,revert:null,transaction:{to:A.to,from:A.from,data:""},receipt:A})},N=await this.provider.getTransactionReceipt(this.hash);if(X===0)return Q(N);if(N){if(X===1||await N.confirmations()>=X)return Q(N)}else if(await U(),X===0)return null;return await new Promise((A,H)=>{let I=[],w=()=>{I.forEach((T)=>T())};if(I.push(()=>{V=!0}),Y>0){let T=setTimeout(()=>{w(),H(AU("wait for transaction timeout","TIMEOUT"))},Y);I.push(()=>{clearTimeout(T)})}let O=async(T)=>{if(await T.confirmations()>=X){w();try{A(Q(T))}catch(F){H(F)}}};if(I.push(()=>{this.provider.off(this.hash,O)}),this.provider.on(this.hash,O),J>=0){let T=async()=>{try{await U()}catch(F){if(PH(F,"TRANSACTION_REPLACED")){w(),H(F);return}}if(!V)this.provider.once("block",T)};I.push(()=>{this.provider.off("block",T)}),this.provider.once("block",T)}})}isMined(){return this.blockHash!=null}isLegacy(){return this.type===0}isBerlin(){return this.type===1}isLondon(){return this.type===2}isCancun(){return this.type===3}removedEvent(){return X1(this.isMined(),"unmined transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),C_(this)}reorderedEvent(W){return X1(this.isMined(),"unmined transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),X1(!W||W.isMined(),"unmined 'other' transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),D_(this,W)}replaceableTransaction(W){s(Number.isInteger(W)&&W>=0,"invalid startBlock","startBlock",W);let G=new eH(this,this.provider);return G.#W=W,G}}function ts(W){return{orphan:"drop-block",hash:W.hash,number:W.number}}function D_(W,G){return{orphan:"reorder-transaction",tx:W,other:G}}function C_(W){return{orphan:"drop-transaction",tx:W}}function es(W){return{orphan:"drop-log",log:{transactionHash:W.transactionHash,blockHash:W.blockHash,blockNumber:W.blockNumber,address:W.address,data:W.data,topics:Object.freeze(W.topics.slice()),index:W.index}}}function uG(W,G){if(W.provider)return W.provider;X1(!1,"missing provider","UNSUPPORTED_OPERATION",{operation:G})}async function T_(W,G){let X=RU(G);if(X.to!=null)X.to=t4(X.to,W);if(X.from!=null){let Y=X.from;X.from=Promise.all([W.getAddress(),t4(Y,W)]).then(([J,Z])=>{return s(J.toLowerCase()===Z.toLowerCase(),"transaction from mismatch","tx.from",Z),J})}else X.from=W.getAddress();return await n7(X)}class LU{provider;constructor(W){q8(this,{provider:W||null})}async getNonce(W){return uG(this,"getTransactionCount").getTransactionCount(await this.getAddress(),W)}async populateCall(W){return await T_(this,W)}async populateTransaction(W){let G=uG(this,"populateTransaction"),X=await T_(this,W);if(X.nonce==null)X.nonce=await this.getNonce("pending");if(X.gasLimit==null)X.gasLimit=await this.estimateGas(X);let Y=await this.provider.getNetwork();if(X.chainId!=null){let Z=m1(X.chainId);s(Z===Y.chainId,"transaction chainId mismatch","tx.chainId",W.chainId)}else X.chainId=Y.chainId;let J=X.maxFeePerGas!=null||X.maxPriorityFeePerGas!=null;if(X.gasPrice!=null&&(X.type===2||J))s(!1,"eip-1559 transaction do not support gasPrice","tx",W);else if((X.type===0||X.type===1)&&J)s(!1,"pre-eip-1559 transaction do not support maxFeePerGas/maxPriorityFeePerGas","tx",W);if((X.type===2||X.type==null)&&(X.maxFeePerGas!=null&&X.maxPriorityFeePerGas!=null))X.type=2;else if(X.type===0||X.type===1){let Z=await G.getFeeData();if(X1(Z.gasPrice!=null,"network does not support gasPrice","UNSUPPORTED_OPERATION",{operation:"getGasPrice"}),X.gasPrice==null)X.gasPrice=Z.gasPrice}else{let Z=await G.getFeeData();if(X.type==null)if(Z.maxFeePerGas!=null&&Z.maxPriorityFeePerGas!=null){if(X.authorizationList&&X.authorizationList.length)X.type=4;else X.type=2;if(X.gasPrice!=null){let V=X.gasPrice;delete X.gasPrice,X.maxFeePerGas=V,X.maxPriorityFeePerGas=V}else{if(X.maxFeePerGas==null)X.maxFeePerGas=Z.maxFeePerGas;if(X.maxPriorityFeePerGas==null)X.maxPriorityFeePerGas=Z.maxPriorityFeePerGas}}else if(Z.gasPrice!=null){if(X1(!J,"network does not support EIP-1559","UNSUPPORTED_OPERATION",{operation:"populateTransaction"}),X.gasPrice==null)X.gasPrice=Z.gasPrice;X.type=0}else X1(!1,"failed to get consistent fee data","UNSUPPORTED_OPERATION",{operation:"signer.getFeeData"});else if(X.type===2||X.type===3||X.type===4){if(X.maxFeePerGas==null)X.maxFeePerGas=Z.maxFeePerGas;if(X.maxPriorityFeePerGas==null)X.maxPriorityFeePerGas=Z.maxPriorityFeePerGas}}return await n7(X)}async populateAuthorization(W){let G=Object.assign({},W);if(G.chainId==null)G.chainId=(await uG(this,"getNetwork").getNetwork()).chainId;if(G.nonce==null)G.nonce=await this.getNonce();return G}async estimateGas(W){return uG(this,"estimateGas").estimateGas(await this.populateCall(W))}async call(W){return uG(this,"call").call(await this.populateCall(W))}async resolveName(W){return await uG(this,"resolveName").resolveName(W)}async sendTransaction(W){let G=uG(this,"sendTransaction"),X=await this.populateTransaction(W);delete X.from;let Y=t9.from(X);return await G.broadcastTransaction(await this.signTransaction(Y))}authorize(W){X1(!1,"authorization not implemented for this signer","UNSUPPORTED_OPERATION",{operation:"authorize"})}}class BU extends LU{address;constructor(W,G){super(G);q8(this,{address:W})}async getAddress(){return this.address}connect(W){return new BU(this.address,W)}#W(W,G){X1(!1,`VoidSigner cannot sign ${W}`,"UNSUPPORTED_OPERATION",{operation:G})}async signTransaction(W){this.#W("transactions","signTransaction")}async signMessage(W){this.#W("messages","signMessage")}async signTypedData(W,G,X){this.#W("typed-data","signTypedData")}}class hG extends LU{address;#W;constructor(W,G){super(G);s(W&&typeof W.sign==="function","invalid private key","privateKey","[ REDACTED ]"),this.#W=W;let X=e4(this.signingKey.publicKey);q8(this,{address:X})}get signingKey(){return this.#W}get privateKey(){return this.signingKey.privateKey}async getAddress(){return this.address}connect(W){return new hG(this.#W,W)}async signTransaction(W){W=RU(W);let{to:G,from:X}=await n7({to:W.to?t4(W.to,this):void 0,from:W.from?t4(W.from,this):void 0});if(G!=null)W.to=G;if(X!=null)W.from=X;if(W.from!=null)s(y1(W.from)===this.address,"transaction from address mismatch","tx.from",W.from),delete W.from;let Y=t9.from(W);return Y.signature=this.signingKey.sign(Y.unsignedHash),Y.serialized}async signMessage(W){return this.signMessageSync(W)}signMessageSync(W){return this.signingKey.sign(MU(W)).serialized}authorizeSync(W){s(typeof W.address==="string","invalid address for authorizeSync","auth.address",W);let G=this.signingKey.sign(sH(W));return Object.assign({},{address:y1(W.address),nonce:m1(W.nonce||0),chainId:m1(W.chainId||0)},{signature:G})}async authorize(W){return W=Object.assign({},W,{address:await t4(W.address,this)}),this.authorizeSync(await this.populateAuthorization(W))}async signTypedData(W,G,X){let Y=await $9.resolveNames(W,G,X,async(J)=>{X1(this.provider!=null,"cannot resolve ENS names without a provider","UNSUPPORTED_OPERATION",{operation:"resolveName",info:{name:J}});let Z=await this.provider.resolveName(J);return X1(Z!=null,"unconfigured ENS name","UNCONFIGURED_NAME",{value:J}),Z});return this.signingKey.sign($9.hash(Y.domain,G,Y.value)).serialized}}var WA=" !#$%&'()*+,-./<=>?@[]^_`{|}~",Wt=/^[a-z]*$/i;function M_(W,G){let X=97;return W.reduce((Y,J)=>{if(J===G)X++;else if(J.match(Wt))Y.push(String.fromCharCode(X)+J);else X=97,Y.push(J);return Y},[])}function Gt(W,G){for(let J=WA.length-1;J>=0;J--)W=W.split(WA[J]).join(G.substring(2*J,2*J+2));let X=[],Y=W.replace(/(:|([0-9])|([A-Z][a-z]*))/g,(J,Z,V,U)=>{if(V)for(let Q=parseInt(V);Q>=0;Q--)X.push(";");else X.push(Z.toLowerCase());return""});if(Y)throw Error(`leftovers: ${JSON.stringify(Y)}`);return M_(M_(X,";"),":")}function P_(W){return s(W[0]==="0","unsupported auwl data","data",W),Gt(W.substring(1+2*WA.length),W.substring(1,1+2*WA.length))}class nO{locale;constructor(W){q8(this,{locale:W})}split(W){return W.toLowerCase().split(/\s+/g)}join(W){return W.join(" ")}}class iO extends nO{#W;#G;constructor(W,G,X){super(W);this.#W=G,this.#G=X,this.#X=null}get _data(){return this.#W}_decodeWords(){return P_(this.#W)}#X;#Y(){if(this.#X==null){let W=this._decodeWords();if(W6(W.join(`
250
250
  `)+`
251
- `)!==this.#G)throw Error(`BIP39 Wordlist for ${this.locale} FAILED`);this.#X=W}return this.#X}getWord(W){let G=this.#Y();return s(W>=0&&W<G.length,`invalid word index: ${W}`,"index",W),G[W]}getWordIndex(W){return this.#Y().indexOf(W)}}var Xt="0erleonalorenseinceregesticitStanvetearctssi#ch2Athck&tneLl0And#Il.yLeOutO=S|S%b/ra@SurdU'0Ce[Cid|CountCu'Hie=IdOu,-Qui*Ro[TT]T%T*[Tu$0AptDD-tD*[Ju,M.UltV<)Vi)0Rob-0FairF%dRaid0A(EEntRee0Ead0MRRp%tS!_rmBumCoholErtI&LLeyLowMo,O}PhaReadySoT Ways0A>urAz(gOngOuntU'd0Aly,Ch%Ci|G G!GryIm$K!Noun)Nu$O` Sw T&naTiqueXietyY1ArtOlogyPe?P!Pro=Ril1ChCt-EaEnaGueMMedM%MyOundR<+Re,Ri=RowTTefa@Ti,Tw%k0KPe@SaultSetSi,SumeThma0H!>OmTa{T&dT.udeTra@0Ct]D.Gu,NtTh%ToTumn0Era+OcadoOid0AkeA*AyEsomeFulKw?d0Is:ByChel%C#D+GL<)Lc#y~MbooN<aNn RRelyRga(R*lSeS-SketTt!3A^AnAutyCau'ComeEfF%eG(Ha=H(dLie=LowLtN^Nef./TrayTt Twe&Y#d3Cyc!DKeNdOlogyRdR`Tt _{AdeAmeAnketA,EakE[IndOodO[omOu'UeUrUsh_rdAtDyIlMbNeNusOkO,Rd R(gRrowSsTtomUn)XY_{etA(AndA[A=EadEezeI{Id+IefIghtIngIskOccoliOk&OnzeOomO` OwnUsh2Bb!DdyD+tFf$oIldLbLkL!tNd!Nk Rd&Rg R,SS(e[SyTt Y Zz:Bba+B(B!CtusGeKe~LmM aMpNN$N)lNdyNn#NoeNvasNy#Pab!P.$Pta(RRb#RdRgoRpetRryRtSeShS(o/!Su$TT$ogT^Teg%yTt!UghtU'Ut]Ve3Il(gL yM|NsusNturyRe$Rta(_irAlkAmp]An+AosApt Ar+A'AtEapE{Ee'EfErryE,I{&IefIldIm}yOi)Oo'R#-U{!UnkUrn0G?Nnam#Rc!Tiz&TyVil_imApArifyAwAyE<ErkEv I{I|IffImbIn-IpO{OgO'O`OudOwnUbUmpU, Ut^_^A,C#utDeFfeeIlInL!@L%LumnMb(eMeMf%tM-Mm#Mp<yNc tNdu@NfirmNg*[N}@Nsid NtrolNv()OkOlPp PyR$ReRnR*@/Tt#U^UntryUp!Ur'Us(V Yo>_{Ad!AftAmA}AshAt AwlAzyEamEd.EekEwI{etImeIspIt-OpO[Ou^OwdUci$UelUi'Umb!Un^UshYY,$2BeLtu*PPbo?dRiousRr|Rta(R=Sh]/omTe3C!:DMa+MpN)Ng R(gShUght WnY3AlBa>BrisCadeCemb CideCl(eC%a>C*a'ErF&'F(eFyG*eLayLiv M<dMi'Ni$Nti,NyP?tP&dPos.P`PutyRi=ScribeS tSignSkSpair/royTailTe@VelopVi)Vo>3AgramAlAm#dAryCeE'lEtFf G.$Gn.yLemmaNn NosaurRe@RtSag*eScov Sea'ShSmi[S%d Splay/<)V tVideV%)Zzy5Ct%Cum|G~Lph(Ma(Na>NkeyN%OrSeUb!Ve_ftAg#AmaA,-AwEamE[IftIllInkIpI=OpUmY2CkMbNeR(g/T^Ty1Arf1Nam-:G G!RlyRnR`Sily/Sy1HoOlogyOnomy0GeItUca>1F%t0G1GhtTh 2BowD E@r-Eg<tEm|Eph<tEvat%I>Se0B?kBodyBra)Er+Ot]PloyPow Pty0Ab!A@DD![D%'EmyErgyF%)Ga+G(eH<)JoyLi,OughR-hRollSu*T Ti*TryVelope1Isode0U$Uip0AA'OdeOs]R%Upt0CapeSayS&)Ta>0Ern$H-s1Id&)IlOkeOl=1A@Amp!Ce[Ch<+C.eCludeCu'Ecu>Erci'Hau,Hib.I!I,ItOt-P<dPe@Pi*Pla(Po'P*[T&dTra0EEbrow:Br-CeCultyDeIntI`~L'MeMilyMousNNcyNtasyRmSh]TT$Th TigueUltV%.e3Atu*Bru?yD $EEdElMa!N)/iv$T^V W3B Ct]EldGu*LeLmLt N$NdNeNg NishReRmR,Sc$ShTT}[X_gAmeAshAtAv%EeIghtIpOatO{O%Ow UidUshY_mCusGIlLd~owOdOtR)Re,R+tRkRtu}RumRw?dSsil/ UndX_gi!AmeEqu|EshI&dIn+OgOntO,OwnOz&U.2ElNNnyRna)RyTu*:D+tInLaxy~ yMePRa+Rba+Rd&Rl-Rm|SSpTeTh U+Ze3N $NiusN*Nt!Nu(e/u*2O,0AntFtGg!Ng RaffeRlVe_dAn)A*A[IdeImp'ObeOomOryO=OwUe_tDde[LdOdO'RillaSpelSsipV nWn_bA)A(AntApeA[Av.yEatE&IdIefItOc yOupOwUnt_rdE[IdeIltIt?N3M:B.IrLfMm M, NdPpyRb%RdRshR=,TVeWkZ?d3AdAl`ArtAvyD+hogIght~oLmetLpNRo3Dd&Gh~NtPRe/%y5BbyCkeyLdLeLiday~owMeNeyOdPeRnRr%R'Sp.$/TelUrV 5BGeM<Mb!M%Nd*dNgryNtRd!RryRtSb<d3Brid:1EOn0EaEntifyLe2N%e4LLeg$L}[0A+Ita>M&'Mu}Pa@Po'Pro=Pul'0ChCludeComeC*a'DexD-a>Do%Du,ryF<tFl-tF%mHa!H .Iti$Je@JuryMa>N Noc|PutQuiryS<eSe@SideSpi*/$lTa@T e,ToVe,V.eVol=3On0L<dOla>Sue0Em1Ory:CketGu?RZz3AlousAns~yWel9BInKeUr}yY5D+I)MpNg!Ni%Nk/:Ng?oo3EnEpT^upY3CkDD}yNdNgdomSsTT^&TeTt&Wi4EeIfeO{Ow:BBelB%Dd DyKeMpNgua+PtopR+T T(UghUndryVaWWnWsu.Y Zy3Ad AfArnA=Ctu*FtGG$G&dIsu*M#NdNg`NsOp?dSs#Tt Vel3ArB tyBr?yC&'FeFtGhtKeMbM.NkOnQuid/Tt!VeZ?d5AdAnB, C$CkG-NelyNgOpTt yUdUn+VeY$5CkyGga+Mb N?N^Xury3R-s:Ch(eDG-G}tIdIlInJ%KeMm$NNa+Nda>NgoNs]Nu$P!Rb!R^Rg(R(eRketRria+SkSs/ T^T i$ThTrixTt XimumZe3AdowAnAsu*AtCh<-D$DiaLodyLtMb M%yNt]NuRcyR+R.RryShSsa+T$Thod3Dd!DnightLk~]M-NdNimumN%Nu>Rac!Rr%S ySs/akeXXedXtu*5Bi!DelDifyMM|N.%NkeyN, N`OnR$ReRn(gSqu.oTh T]T%Unta(U'VeVie5ChFf(LeLtiplySc!SeumShroomS-/Tu$3Self/ yTh:I=MePk(Rrow/yT]Tu*3ArCkEdGati=G!@I` PhewR=/TTw%kUtr$V WsXt3CeGht5B!I'M(eeOd!Rm$R`SeTab!TeTh(gTi)VelW5C!?Mb R'T:K0EyJe@Li+Scu*S =Ta(Vious0CurE<Tob 0Or1FF Fi)T&2L1Ay0DI=Ymp-0It0CeEI#L(eLy1EnEraIn]Po'T]1An+B.Ch?dD D(?yG<I|Ig($Ph<0Tr-h0H 0Tdo%T TputTside0AlEnEr0NN 0Yg&0/ 0O}:CtDd!GeIrLa)LmNdaNelN-N` P RadeR|RkRrotRtySsT^ThTi|TrolTt nU'VeYm|3A)AnutArAs<tL-<NN$tyNcilOp!Pp Rfe@Rm.Rs#T2O}OtoRa'Ys-$0AnoCn-Ctu*E)GGe#~LotNkO} Pe/olT^Zza_)A}tA,-A>AyEa'Ed+U{UgUn+2EmEtIntL?LeLi)NdNyOlPul?Rt]S.]Ssib!/TatoTt yV tyWd W _@i)Ai'Ed-tEf Epa*Es|EttyEv|I)IdeIm?yIntI%.yIs#Iva>IzeOb!mO)[Odu)Of.OgramOje@Omo>OofOp tyOsp O>@OudOvide2Bl-Dd(g~LpL'Mpk(N^PilPpyR^a'R.yRpo'R'ShTZz!3Ramid:99Al.yAntumArt E,]I{ItIzO>:Bb.Cco#CeCkD?DioIlInI'~yMpN^NdomN+PidReTeTh V&WZ%3AdyAlAs#BelBuildC$lCei=CipeC%dCyc!Du)F!@F%mFu'G]G*tGul?Je@LaxLea'LiefLyMa(Memb M(dMo=Nd NewNtOp&PairPeatPla)P%tQui*ScueSemb!Si,Sour)Sp#'SultTi*T*atTurnUn]Ve$ViewW?d2Y`m0BBb#CeChDeD+F!GhtGidNgOtPp!SkTu$V$V 5AdA,BotBu,CketM<)OfOkieOmSeTa>UghUndU>Y$5Bb DeGLeNNwayR$:DDd!D}[FeIlLadLm#L#LtLu>MeMp!NdTisfyToshiU)Usa+VeY1A!AnA*Att E}HemeHoolI&)I[%sOrp]OutRapRe&RiptRub1AAr^As#AtC#dC*tCt]Cur.yEdEkGm|Le@~M(?Ni%N'Nt&)RiesRvi)Ss]Tt!TupV&_dowAftAllowA*EdEllEriffIeldIftI}IpIv O{OeOotOpOrtOuld O=RimpRugUff!Y0Bl(gCkDeE+GhtGnL|Lk~yLv Mil?Mp!N)NgR&/ Tua>XZe1A>Et^IIllInIrtUll0AbAmEepEnd I)IdeIghtImOg<OtOwUsh0AllArtI!OkeOo`0A{AkeApIffOw0ApCc Ci$CkDaFtL?Ldi LidLut]L=Me#eNgOnRryRtUlUndUpUr)U`0A)A*Ati$AwnEakEci$EedEllEndH eI)Id IkeInIr.L.OilOns%O#OrtOtRayReadR(gY0Ua*UeezeUir*l_b!AdiumAffA+AirsAmpAndArtA>AyEakEelEmEpE*oI{IllIngO{Oma^O}OolOryO=Ra>gyReetRikeR#gRugg!Ud|UffUmb!Y!0Bje@Bm.BwayC)[ChDd&Ff G?G+,ItMm NNnyN'tP PplyP*meReRfa)R+Rpri'RroundR=ySpe@/a(1AllowAmpApArmE?EetIftImIngIt^Ord1MbolMptomRup/em:B!Ck!GIlL|LkNkPeR+tSk/eTtooXi3A^Am~NN<tNnisNtRm/Xt_nkAtEmeEnE%yE*EyIngIsOughtReeRi=RowUmbUnd 0CketDeG LtMb MeNyPRedSsueT!5A,BaccoDayDdl EGe` I!tK&MatoM%rowNeNgueNightOlO`PP-Pp!R^RnadoRtoi'SsT$Uri,W?dW WnY_{AdeAff-Ag-A(Ansf ApAshA=lAyEatEeEndI$IbeI{Igg ImIpOphyOub!U{UeUlyUmpetU,U`Y2BeIt]Mb!NaN}lRkeyRnRt!1El=EntyI)InI,O1PeP-$:5Ly5B*lla0Ab!Awa*C!Cov D DoFairFoldHappyIf%mIqueItIv 'KnownLo{TilUsu$Veil1Da>GradeHoldOnP Set1B<Ge0A+EEdEfulE![U$0Il.y:C<tCuumGueLidL!yL=NNishP%Rious/Ult3H-!L=tNd%Ntu*NueRbRifyRs]RyS'lT <3Ab!Br<tCiousCt%yDeoEw~a+Nta+Ol(Rtu$RusSaS.Su$T$Vid5C$I)IdLc<oLumeTeYa+:GeG#ItLk~LnutNtRfa*RmRri%ShSp/eT VeY3Al`Ap#ArA'lA` BDd(gEk&dIrdLcome/T_!AtEatEelEnE*IpIsp 0DeD`FeLd~NNdowNeNgNkNn Nt ReSdomSeShT}[5LfM<Nd OdOlRdRkRldRryR`_pE{E,!I,I>Ong::Rd3Ar~ow9UUngU`:3BraRo9NeO",Yt="0x3c8acc1e7b08d8e76f9fda015ef48dc8c710a73cb7e0f77b2c18a9b5a7adde60",rO=null;class G6 extends iO{constructor(){super("en",Xt,Yt)}static wordlist(){if(rO==null)rO=new G6;return rO}}function R_(W){return(1<<W)-1<<8-W&255}function Jt(W){return(1<<W)-1&255}function aO(W,G){if(iY("NFKD"),G==null)G=G6.wordlist();let X=G.split(W);s(X.length%3===0&&X.length>=12&&X.length<=24,"invalid mnemonic length","mnemonic","[ REDACTED ]");let Y=new Uint8Array(Math.ceil(11*X.length/8)),J=0;for(let N=0;N<X.length;N++){let q=G.getWordIndex(X[N].normalize("NFKD"));s(q>=0,`invalid mnemonic word at index ${N}`,"mnemonic","[ REDACTED ]");for(let A=0;A<11;A++){if(q&1<<10-A)Y[J>>3]|=1<<7-J%8;J++}}let Z=32*X.length/3,V=X.length/3,U=R_(V),Q=E0(B9(Y.slice(0,Z/8)))[0]&U;return s(Q===(Y[Y.length-1]&U),"invalid mnemonic checksum","mnemonic","[ REDACTED ]"),C0(Y.slice(0,Z/8))}function sO(W,G){if(s(W.length%4===0&&W.length>=16&&W.length<=32,"invalid entropy size","entropy","[ REDACTED ]"),G==null)G=G6.wordlist();let X=[0],Y=11;for(let V=0;V<W.length;V++)if(Y>8)X[X.length-1]<<=8,X[X.length-1]|=W[V],Y-=8;else X[X.length-1]<<=Y,X[X.length-1]|=W[V]>>8-Y,X.push(W[V]&Jt(8-Y)),Y+=3;let J=W.length/4,Z=parseInt(B9(W).substring(2,4),16)&R_(J);return X[X.length-1]<<=J,X[X.length-1]|=Z>>8-J,G.join(X.map((V)=>G.getWord(V)))}var tO={};class X6{phrase;password;wordlist;entropy;constructor(W,G,X,Y,J){if(Y==null)Y="";if(J==null)J=G6.wordlist();o4(W,tO,"Mnemonic"),q8(this,{phrase:X,password:Y,wordlist:J,entropy:G})}computeSeed(){let W=U9("mnemonic"+this.password,"NFKD");return S5(U9(this.phrase,"NFKD"),W,2048,64,"sha512")}static fromPhrase(W,G,X){let Y=aO(W,X);return W=sO(E0(Y),X),new X6(tO,Y,W,G,X)}static fromEntropy(W,G,X){let Y=E0(W,"entropy"),J=sO(Y,X);return new X6(tO,C0(Y),J,G,X)}static entropyToPhrase(W,G){let X=E0(W,"entropy");return sO(X,G)}static phraseToEntropy(W,G){return aO(W,G)}static isValidMnemonic(W,G){try{return aO(W,G),!0}catch(X){}return!1}}/*! MIT License. Copyright 2015-2022 Richard Moore <me@ricmoo.com>. See LICENSE.txt. */var Q9=function(W,G,X,Y){if(X==="a"&&!Y)throw TypeError("Private accessor was defined without a getter");if(typeof G==="function"?W!==G||!Y:!G.has(W))throw TypeError("Cannot read private member from an object whose class did not declare it");return X==="m"?Y:X==="a"?Y.call(W):Y?Y.value:G.get(W)},eO=function(W,G,X,Y,J){if(Y==="m")throw TypeError("Private method is not writable");if(Y==="a"&&!J)throw TypeError("Private accessor was defined without a setter");if(typeof G==="function"?W!==G||!J:!G.has(W))throw TypeError("Cannot write private member to an object whose class did not declare it");return Y==="a"?J.call(W,X):J?J.value=X:G.set(W,X),X},XA,y5,a7,Zt={16:10,24:12,32:14},Vt=[1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145],_5=[99,124,119,123,242,107,111,197,48,1,103,43,254,215,171,118,202,130,201,125,250,89,71,240,173,212,162,175,156,164,114,192,183,253,147,38,54,63,247,204,52,165,229,241,113,216,49,21,4,199,35,195,24,150,5,154,7,18,128,226,235,39,178,117,9,131,44,26,27,110,90,160,82,59,214,179,41,227,47,132,83,209,0,237,32,252,177,91,106,203,190,57,74,76,88,207,208,239,170,251,67,77,51,133,69,249,2,127,80,60,159,168,81,163,64,143,146,157,56,245,188,182,218,33,16,255,243,210,205,12,19,236,95,151,68,23,196,167,126,61,100,93,25,115,96,129,79,220,34,42,144,136,70,238,184,20,222,94,11,219,224,50,58,10,73,6,36,92,194,211,172,98,145,149,228,121,231,200,55,109,141,213,78,169,108,86,244,234,101,122,174,8,186,120,37,46,28,166,180,198,232,221,116,31,75,189,139,138,112,62,181,102,72,3,246,14,97,53,87,185,134,193,29,158,225,248,152,17,105,217,142,148,155,30,135,233,206,85,40,223,140,161,137,13,191,230,66,104,65,153,45,15,176,84,187,22],GA=[82,9,106,213,48,54,165,56,191,64,163,158,129,243,215,251,124,227,57,130,155,47,255,135,52,142,67,68,196,222,233,203,84,123,148,50,166,194,35,61,238,76,149,11,66,250,195,78,8,46,161,102,40,217,36,178,118,91,162,73,109,139,209,37,114,248,246,100,134,104,152,22,212,164,92,204,93,101,182,146,108,112,72,80,253,237,185,218,94,21,70,87,167,141,157,132,144,216,171,0,140,188,211,10,247,228,88,5,184,179,69,6,208,44,30,143,202,63,15,2,193,175,189,3,1,19,138,107,58,145,17,65,79,103,220,234,151,242,207,206,240,180,230,115,150,172,116,34,231,173,53,133,226,249,55,232,28,117,223,110,71,241,26,113,29,41,197,137,111,183,98,14,170,24,190,27,252,86,62,75,198,210,121,32,154,219,192,254,120,205,90,244,31,221,168,51,136,7,199,49,177,18,16,89,39,128,236,95,96,81,127,169,25,181,74,13,45,229,122,159,147,201,156,239,160,224,59,77,174,42,245,176,200,235,187,60,131,83,153,97,23,43,4,126,186,119,214,38,225,105,20,99,85,33,12,125],Ut=[3328402341,4168907908,4000806809,4135287693,4294111757,3597364157,3731845041,2445657428,1613770832,33620227,3462883241,1445669757,3892248089,3050821474,1303096294,3967186586,2412431941,528646813,2311702848,4202528135,4026202645,2992200171,2387036105,4226871307,1101901292,3017069671,1604494077,1169141738,597466303,1403299063,3832705686,2613100635,1974974402,3791519004,1033081774,1277568618,1815492186,2118074177,4126668546,2211236943,1748251740,1369810420,3521504564,4193382664,3799085459,2883115123,1647391059,706024767,134480908,2512897874,1176707941,2646852446,806885416,932615841,168101135,798661301,235341577,605164086,461406363,3756188221,3454790438,1311188841,2142417613,3933566367,302582043,495158174,1479289972,874125870,907746093,3698224818,3025820398,1537253627,2756858614,1983593293,3084310113,2108928974,1378429307,3722699582,1580150641,327451799,2790478837,3117535592,0,3253595436,1075847264,3825007647,2041688520,3059440621,3563743934,2378943302,1740553945,1916352843,2487896798,2555137236,2958579944,2244988746,3151024235,3320835882,1336584933,3992714006,2252555205,2588757463,1714631509,293963156,2319795663,3925473552,67240454,4269768577,2689618160,2017213508,631218106,1269344483,2723238387,1571005438,2151694528,93294474,1066570413,563977660,1882732616,4059428100,1673313503,2008463041,2950355573,1109467491,537923632,3858759450,4260623118,3218264685,2177748300,403442708,638784309,3287084079,3193921505,899127202,2286175436,773265209,2479146071,1437050866,4236148354,2050833735,3362022572,3126681063,840505643,3866325909,3227541664,427917720,2655997905,2749160575,1143087718,1412049534,999329963,193497219,2353415882,3354324521,1807268051,672404540,2816401017,3160301282,369822493,2916866934,3688947771,1681011286,1949973070,336202270,2454276571,201721354,1210328172,3093060836,2680341085,3184776046,1135389935,3294782118,965841320,831886756,3554993207,4068047243,3588745010,2345191491,1849112409,3664604599,26054028,2983581028,2622377682,1235855840,3630984372,2891339514,4092916743,3488279077,3395642799,4101667470,1202630377,268961816,1874508501,4034427016,1243948399,1546530418,941366308,1470539505,1941222599,2546386513,3421038627,2715671932,3899946140,1042226977,2521517021,1639824860,227249030,260737669,3765465232,2084453954,1907733956,3429263018,2420656344,100860677,4160157185,470683154,3261161891,1781871967,2924959737,1773779408,394692241,2579611992,974986535,664706745,3655459128,3958962195,731420851,571543859,3530123707,2849626480,126783113,865375399,765172662,1008606754,361203602,3387549984,2278477385,2857719295,1344809080,2782912378,59542671,1503764984,160008576,437062935,1707065306,3622233649,2218934982,3496503480,2185314755,697932208,1512910199,504303377,2075177163,2824099068,1841019862,739644986],Qt=[2781242211,2230877308,2582542199,2381740923,234877682,3184946027,2984144751,1418839493,1348481072,50462977,2848876391,2102799147,434634494,1656084439,3863849899,2599188086,1167051466,2636087938,1082771913,2281340285,368048890,3954334041,3381544775,201060592,3963727277,1739838676,4250903202,3930435503,3206782108,4149453988,2531553906,1536934080,3262494647,484572669,2923271059,1783375398,1517041206,1098792767,49674231,1334037708,1550332980,4098991525,886171109,150598129,2481090929,1940642008,1398944049,1059722517,201851908,1385547719,1699095331,1587397571,674240536,2704774806,252314885,3039795866,151914247,908333586,2602270848,1038082786,651029483,1766729511,3447698098,2682942837,454166793,2652734339,1951935532,775166490,758520603,3000790638,4004797018,4217086112,4137964114,1299594043,1639438038,3464344499,2068982057,1054729187,1901997871,2534638724,4121318227,1757008337,0,750906861,1614815264,535035132,3363418545,3988151131,3201591914,1183697867,3647454910,1265776953,3734260298,3566750796,3903871064,1250283471,1807470800,717615087,3847203498,384695291,3313910595,3617213773,1432761139,2484176261,3481945413,283769337,100925954,2180939647,4037038160,1148730428,3123027871,3813386408,4087501137,4267549603,3229630528,2315620239,2906624658,3156319645,1215313976,82966005,3747855548,3245848246,1974459098,1665278241,807407632,451280895,251524083,1841287890,1283575245,337120268,891687699,801369324,3787349855,2721421207,3431482436,959321879,1469301956,4065699751,2197585534,1199193405,2898814052,3887750493,724703513,2514908019,2696962144,2551808385,3516813135,2141445340,1715741218,2119445034,2872807568,2198571144,3398190662,700968686,3547052216,1009259540,2041044702,3803995742,487983883,1991105499,1004265696,1449407026,1316239930,504629770,3683797321,168560134,1816667172,3837287516,1570751170,1857934291,4014189740,2797888098,2822345105,2754712981,936633572,2347923833,852879335,1133234376,1500395319,3084545389,2348912013,1689376213,3533459022,3762923945,3034082412,4205598294,133428468,634383082,2949277029,2398386810,3913789102,403703816,3580869306,2297460856,1867130149,1918643758,607656988,4049053350,3346248884,1368901318,600565992,2090982877,2632479860,557719327,3717614411,3697393085,2249034635,2232388234,2430627952,1115438654,3295786421,2865522278,3633334344,84280067,33027830,303828494,2747425121,1600795957,4188952407,3496589753,2434238086,1486471617,658119965,3106381470,953803233,334231800,3005978776,857870609,3151128937,1890179545,2298973838,2805175444,3056442267,574365214,2450884487,550103529,1233637070,4289353045,2018519080,2057691103,2399374476,4166623649,2148108681,387583245,3664101311,836232934,3330556482,3100665960,3280093505,2955516313,2002398509,287182607,3413881008,4238890068,3597515707,975967766],Nt=[1671808611,2089089148,2006576759,2072901243,4061003762,1807603307,1873927791,3310653893,810573872,16974337,1739181671,729634347,4263110654,3613570519,2883997099,1989864566,3393556426,2191335298,3376449993,2106063485,4195741690,1508618841,1204391495,4027317232,2917941677,3563566036,2734514082,2951366063,2629772188,2767672228,1922491506,3227229120,3082974647,4246528509,2477669779,644500518,911895606,1061256767,4144166391,3427763148,878471220,2784252325,3845444069,4043897329,1905517169,3631459288,827548209,356461077,67897348,3344078279,593839651,3277757891,405286936,2527147926,84871685,2595565466,118033927,305538066,2157648768,3795705826,3945188843,661212711,2999812018,1973414517,152769033,2208177539,745822252,439235610,455947803,1857215598,1525593178,2700827552,1391895634,994932283,3596728278,3016654259,695947817,3812548067,795958831,2224493444,1408607827,3513301457,0,3979133421,543178784,4229948412,2982705585,1542305371,1790891114,3410398667,3201918910,961245753,1256100938,1289001036,1491644504,3477767631,3496721360,4012557807,2867154858,4212583931,1137018435,1305975373,861234739,2241073541,1171229253,4178635257,33948674,2139225727,1357946960,1011120188,2679776671,2833468328,1374921297,2751356323,1086357568,2408187279,2460827538,2646352285,944271416,4110742005,3168756668,3066132406,3665145818,560153121,271589392,4279952895,4077846003,3530407890,3444343245,202643468,322250259,3962553324,1608629855,2543990167,1154254916,389623319,3294073796,2817676711,2122513534,1028094525,1689045092,1575467613,422261273,1939203699,1621147744,2174228865,1339137615,3699352540,577127458,712922154,2427141008,2290289544,1187679302,3995715566,3100863416,339486740,3732514782,1591917662,186455563,3681988059,3762019296,844522546,978220090,169743370,1239126601,101321734,611076132,1558493276,3260915650,3547250131,2901361580,1655096418,2443721105,2510565781,3828863972,2039214713,3878868455,3359869896,928607799,1840765549,2374762893,3580146133,1322425422,2850048425,1823791212,1459268694,4094161908,3928346602,1706019429,2056189050,2934523822,135794696,3134549946,2022240376,628050469,779246638,472135708,2800834470,3032970164,3327236038,3894660072,3715932637,1956440180,522272287,1272813131,3185336765,2340818315,2323976074,1888542832,1044544574,3049550261,1722469478,1222152264,50660867,4127324150,236067854,1638122081,895445557,1475980887,3117443513,2257655686,3243809217,489110045,2662934430,3778599393,4162055160,2561878936,288563729,1773916777,3648039385,2391345038,2493985684,2612407707,505560094,2274497927,3911240169,3460925390,1442818645,678973480,3749357023,2358182796,2717407649,2306869641,219617805,3218761151,3862026214,1120306242,1756942440,1103331905,2578459033,762796589,252780047,2966125488,1425844308,3151392187,372911126],qt=[1667474886,2088535288,2004326894,2071694838,4075949567,1802223062,1869591006,3318043793,808472672,16843522,1734846926,724270422,4278065639,3621216949,2880169549,1987484396,3402253711,2189597983,3385409673,2105378810,4210693615,1499065266,1195886990,4042263547,2913856577,3570689971,2728590687,2947541573,2627518243,2762274643,1920112356,3233831835,3082273397,4261223649,2475929149,640051788,909531756,1061110142,4160160501,3435941763,875846760,2779116625,3857003729,4059105529,1903268834,3638064043,825316194,353713962,67374088,3351728789,589522246,3284360861,404236336,2526454071,84217610,2593830191,117901582,303183396,2155911963,3806477791,3958056653,656894286,2998062463,1970642922,151591698,2206440989,741110872,437923380,454765878,1852748508,1515908788,2694904667,1381168804,993742198,3604373943,3014905469,690584402,3823320797,791638366,2223281939,1398011302,3520161977,0,3991743681,538992704,4244381667,2981218425,1532751286,1785380564,3419096717,3200178535,960056178,1246420628,1280103576,1482221744,3486468741,3503319995,4025428677,2863326543,4227536621,1128514950,1296947098,859002214,2240123921,1162203018,4193849577,33687044,2139062782,1347481760,1010582648,2678045221,2829640523,1364325282,2745433693,1077985408,2408548869,2459086143,2644360225,943212656,4126475505,3166494563,3065430391,3671750063,555836226,269496352,4294908645,4092792573,3537006015,3452783745,202118168,320025894,3974901699,1600119230,2543297077,1145359496,387397934,3301201811,2812801621,2122220284,1027426170,1684319432,1566435258,421079858,1936954854,1616945344,2172753945,1330631070,3705438115,572679748,707427924,2425400123,2290647819,1179044492,4008585671,3099120491,336870440,3739122087,1583276732,185277718,3688593069,3772791771,842159716,976899700,168435220,1229577106,101059084,606366792,1549591736,3267517855,3553849021,2897014595,1650632388,2442242105,2509612081,3840161747,2038008818,3890688725,3368567691,926374254,1835907034,2374863873,3587531953,1313788572,2846482505,1819063512,1448540844,4109633523,3941213647,1701162954,2054852340,2930698567,134748176,3132806511,2021165296,623210314,774795868,471606328,2795958615,3031746419,3334885783,3907527627,3722280097,1953799400,522133822,1263263126,3183336545,2341176845,2324333839,1886425312,1044267644,3048588401,1718004428,1212733584,50529542,4143317495,235803164,1633788866,892690282,1465383342,3115962473,2256965911,3250673817,488449850,2661202215,3789633753,4177007595,2560144171,286339874,1768537042,3654906025,2391705863,2492770099,2610673197,505291324,2273808917,3924369609,3469625735,1431699370,673740880,3755965093,2358021891,2711746649,2307489801,218961690,3217021541,3873845719,1111672452,1751693520,1094828930,2576986153,757954394,252645662,2964376443,1414855848,3149649517,370555436],Ht=[1374988112,2118214995,437757123,975658646,1001089995,530400753,2902087851,1273168787,540080725,2910219766,2295101073,4110568485,1340463100,3307916247,641025152,3043140495,3736164937,632953703,1172967064,1576976609,3274667266,2169303058,2370213795,1809054150,59727847,361929877,3211623147,2505202138,3569255213,1484005843,1239443753,2395588676,1975683434,4102977912,2572697195,666464733,3202437046,4035489047,3374361702,2110667444,1675577880,3843699074,2538681184,1649639237,2976151520,3144396420,4269907996,4178062228,1883793496,2403728665,2497604743,1383856311,2876494627,1917518562,3810496343,1716890410,3001755655,800440835,2261089178,3543599269,807962610,599762354,33778362,3977675356,2328828971,2809771154,4077384432,1315562145,1708848333,101039829,3509871135,3299278474,875451293,2733856160,92987698,2767645557,193195065,1080094634,1584504582,3178106961,1042385657,2531067453,3711829422,1306967366,2438237621,1908694277,67556463,1615861247,429456164,3602770327,2302690252,1742315127,2968011453,126454664,3877198648,2043211483,2709260871,2084704233,4169408201,0,159417987,841739592,504459436,1817866830,4245618683,260388950,1034867998,908933415,168810852,1750902305,2606453969,607530554,202008497,2472011535,3035535058,463180190,2160117071,1641816226,1517767529,470948374,3801332234,3231722213,1008918595,303765277,235474187,4069246893,766945465,337553864,1475418501,2943682380,4003061179,2743034109,4144047775,1551037884,1147550661,1543208500,2336434550,3408119516,3069049960,3102011747,3610369226,1113818384,328671808,2227573024,2236228733,3535486456,2935566865,3341394285,496906059,3702665459,226906860,2009195472,733156972,2842737049,294930682,1206477858,2835123396,2700099354,1451044056,573804783,2269728455,3644379585,2362090238,2564033334,2801107407,2776292904,3669462566,1068351396,742039012,1350078989,1784663195,1417561698,4136440770,2430122216,775550814,2193862645,2673705150,1775276924,1876241833,3475313331,3366754619,270040487,3902563182,3678124923,3441850377,1851332852,3969562369,2203032232,3868552805,2868897406,566021896,4011190502,3135740889,1248802510,3936291284,699432150,832877231,708780849,3332740144,899835584,1951317047,4236429990,3767586992,866637845,4043610186,1106041591,2144161806,395441711,1984812685,1139781709,3433712980,3835036895,2664543715,1282050075,3240894392,1181045119,2640243204,25965917,4203181171,4211818798,3009879386,2463879762,3910161971,1842759443,2597806476,933301370,1509430414,3943906441,3467192302,3076639029,3776767469,2051518780,2631065433,1441952575,404016761,1942435775,1408749034,1610459739,3745345300,2017778566,3400528769,3110650942,941896748,3265478751,371049330,3168937228,675039627,4279080257,967311729,135050206,3635733660,1683407248,2076935265,3576870512,1215061108,3501741890],At=[1347548327,1400783205,3273267108,2520393566,3409685355,4045380933,2880240216,2471224067,1428173050,4138563181,2441661558,636813900,4233094615,3620022987,2149987652,2411029155,1239331162,1730525723,2554718734,3781033664,46346101,310463728,2743944855,3328955385,3875770207,2501218972,3955191162,3667219033,768917123,3545789473,692707433,1150208456,1786102409,2029293177,1805211710,3710368113,3065962831,401639597,1724457132,3028143674,409198410,2196052529,1620529459,1164071807,3769721975,2226875310,486441376,2499348523,1483753576,428819965,2274680428,3075636216,598438867,3799141122,1474502543,711349675,129166120,53458370,2592523643,2782082824,4063242375,2988687269,3120694122,1559041666,730517276,2460449204,4042459122,2706270690,3446004468,3573941694,533804130,2328143614,2637442643,2695033685,839224033,1973745387,957055980,2856345839,106852767,1371368976,4181598602,1033297158,2933734917,1179510461,3046200461,91341917,1862534868,4284502037,605657339,2547432937,3431546947,2003294622,3182487618,2282195339,954669403,3682191598,1201765386,3917234703,3388507166,0,2198438022,1211247597,2887651696,1315723890,4227665663,1443857720,507358933,657861945,1678381017,560487590,3516619604,975451694,2970356327,261314535,3535072918,2652609425,1333838021,2724322336,1767536459,370938394,182621114,3854606378,1128014560,487725847,185469197,2918353863,3106780840,3356761769,2237133081,1286567175,3152976349,4255350624,2683765030,3160175349,3309594171,878443390,1988838185,3704300486,1756818940,1673061617,3403100636,272786309,1075025698,545572369,2105887268,4174560061,296679730,1841768865,1260232239,4091327024,3960309330,3497509347,1814803222,2578018489,4195456072,575138148,3299409036,446754879,3629546796,4011996048,3347532110,3252238545,4270639778,915985419,3483825537,681933534,651868046,2755636671,3828103837,223377554,2607439820,1649704518,3270937875,3901806776,1580087799,4118987695,3198115200,2087309459,2842678573,3016697106,1003007129,2802849917,1860738147,2077965243,164439672,4100872472,32283319,2827177882,1709610350,2125135846,136428751,3874428392,3652904859,3460984630,3572145929,3593056380,2939266226,824852259,818324884,3224740454,930369212,2801566410,2967507152,355706840,1257309336,4148292826,243256656,790073846,2373340630,1296297904,1422699085,3756299780,3818836405,457992840,3099667487,2135319889,77422314,1560382517,1945798516,788204353,1521706781,1385356242,870912086,325965383,2358957921,2050466060,2388260884,2313884476,4006521127,901210569,3990953189,1014646705,1503449823,1062597235,2031621326,3212035895,3931371469,1533017514,350174575,2256028891,2177544179,1052338372,741876788,1606591296,1914052035,213705253,2334669897,1107234197,1899603969,3725069491,2631447780,2422494913,1635502980,1893020342,1950903388,1120974935],zt=[2807058932,1699970625,2764249623,1586903591,1808481195,1173430173,1487645946,59984867,4199882800,1844882806,1989249228,1277555970,3623636965,3419915562,1149249077,2744104290,1514790577,459744698,244860394,3235995134,1963115311,4027744588,2544078150,4190530515,1608975247,2627016082,2062270317,1507497298,2200818878,567498868,1764313568,3359936201,2305455554,2037970062,1047239000,1910319033,1337376481,2904027272,2892417312,984907214,1243112415,830661914,861968209,2135253587,2011214180,2927934315,2686254721,731183368,1750626376,4246310725,1820824798,4172763771,3542330227,48394827,2404901663,2871682645,671593195,3254988725,2073724613,145085239,2280796200,2779915199,1790575107,2187128086,472615631,3029510009,4075877127,3802222185,4107101658,3201631749,1646252340,4270507174,1402811438,1436590835,3778151818,3950355702,3963161475,4020912224,2667994737,273792366,2331590177,104699613,95345982,3175501286,2377486676,1560637892,3564045318,369057872,4213447064,3919042237,1137477952,2658625497,1119727848,2340947849,1530455833,4007360968,172466556,266959938,516552836,0,2256734592,3980931627,1890328081,1917742170,4294704398,945164165,3575528878,958871085,3647212047,2787207260,1423022939,775562294,1739656202,3876557655,2530391278,2443058075,3310321856,547512796,1265195639,437656594,3121275539,719700128,3762502690,387781147,218828297,3350065803,2830708150,2848461854,428169201,122466165,3720081049,1627235199,648017665,4122762354,1002783846,2117360635,695634755,3336358691,4234721005,4049844452,3704280881,2232435299,574624663,287343814,612205898,1039717051,840019705,2708326185,793451934,821288114,1391201670,3822090177,376187827,3113855344,1224348052,1679968233,2361698556,1058709744,752375421,2431590963,1321699145,3519142200,2734591178,188127444,2177869557,3727205754,2384911031,3215212461,2648976442,2450346104,3432737375,1180849278,331544205,3102249176,4150144569,2952102595,2159976285,2474404304,766078933,313773861,2570832044,2108100632,1668212892,3145456443,2013908262,418672217,3070356634,2594734927,1852171925,3867060991,3473416636,3907448597,2614737639,919489135,164948639,2094410160,2997825956,590424639,2486224549,1723872674,3157750862,3399941250,3501252752,3625268135,2555048196,3673637356,1343127501,4130281361,3599595085,2957853679,1297403050,81781910,3051593425,2283490410,532201772,1367295589,3926170974,895287692,1953757831,1093597963,492483431,3528626907,1446242576,1192455638,1636604631,209336225,344873464,1015671571,669961897,3375740769,3857572124,2973530695,3747192018,1933530610,3464042516,935293895,3454686199,2858115069,1863638845,3683022916,4085369519,3292445032,875313188,1080017571,3279033885,621591778,1233856572,2504130317,24197544,3017672716,3835484340,3247465558,2220981195,3060847922,1551124588,1463996600],It=[4104605777,1097159550,396673818,660510266,2875968315,2638606623,4200115116,3808662347,821712160,1986918061,3430322568,38544885,3856137295,718002117,893681702,1654886325,2975484382,3122358053,3926825029,4274053469,796197571,1290801793,1184342925,3556361835,2405426947,2459735317,1836772287,1381620373,3196267988,1948373848,3764988233,3385345166,3263785589,2390325492,1480485785,3111247143,3780097726,2293045232,548169417,3459953789,3746175075,439452389,1362321559,1400849762,1685577905,1806599355,2174754046,137073913,1214797936,1174215055,3731654548,2079897426,1943217067,1258480242,529487843,1437280870,3945269170,3049390895,3313212038,923313619,679998000,3215307299,57326082,377642221,3474729866,2041877159,133361907,1776460110,3673476453,96392454,878845905,2801699524,777231668,4082475170,2330014213,4142626212,2213296395,1626319424,1906247262,1846563261,562755902,3708173718,1040559837,3871163981,1418573201,3294430577,114585348,1343618912,2566595609,3186202582,1078185097,3651041127,3896688048,2307622919,425408743,3371096953,2081048481,1108339068,2216610296,0,2156299017,736970802,292596766,1517440620,251657213,2235061775,2933202493,758720310,265905162,1554391400,1532285339,908999204,174567692,1474760595,4002861748,2610011675,3234156416,3693126241,2001430874,303699484,2478443234,2687165888,585122620,454499602,151849742,2345119218,3064510765,514443284,4044981591,1963412655,2581445614,2137062819,19308535,1928707164,1715193156,4219352155,1126790795,600235211,3992742070,3841024952,836553431,1669664834,2535604243,3323011204,1243905413,3141400786,4180808110,698445255,2653899549,2989552604,2253581325,3252932727,3004591147,1891211689,2487810577,3915653703,4237083816,4030667424,2100090966,865136418,1229899655,953270745,3399679628,3557504664,4118925222,2061379749,3079546586,2915017791,983426092,2022837584,1607244650,2118541908,2366882550,3635996816,972512814,3283088770,1568718495,3499326569,3576539503,621982671,2895723464,410887952,2623762152,1002142683,645401037,1494807662,2595684844,1335535747,2507040230,4293295786,3167684641,367585007,3885750714,1865862730,2668221674,2960971305,2763173681,1059270954,2777952454,2724642869,1320957812,2194319100,2429595872,2815956275,77089521,3973773121,3444575871,2448830231,1305906550,4021308739,2857194700,2516901860,3518358430,1787304780,740276417,1699839814,1592394909,2352307457,2272556026,188821243,1729977011,3687994002,274084841,3594982253,3613494426,2701949495,4162096729,322734571,2837966542,1640576439,484830689,1202797690,3537852828,4067639125,349075736,3342319475,4157467219,4255800159,1030690015,1155237496,2951971274,1757691577,607398968,2738905026,499347990,3794078908,1011452712,227885567,2818666809,213114376,3034881240,1455525988,3414450555,850817237,1817998408,3092726480],wt=[0,235474187,470948374,303765277,941896748,908933415,607530554,708780849,1883793496,2118214995,1817866830,1649639237,1215061108,1181045119,1417561698,1517767529,3767586992,4003061179,4236429990,4069246893,3635733660,3602770327,3299278474,3400528769,2430122216,2664543715,2362090238,2193862645,2835123396,2801107407,3035535058,3135740889,3678124923,3576870512,3341394285,3374361702,3810496343,3977675356,4279080257,4043610186,2876494627,2776292904,3076639029,3110650942,2472011535,2640243204,2403728665,2169303058,1001089995,899835584,666464733,699432150,59727847,226906860,530400753,294930682,1273168787,1172967064,1475418501,1509430414,1942435775,2110667444,1876241833,1641816226,2910219766,2743034109,2976151520,3211623147,2505202138,2606453969,2302690252,2269728455,3711829422,3543599269,3240894392,3475313331,3843699074,3943906441,4178062228,4144047775,1306967366,1139781709,1374988112,1610459739,1975683434,2076935265,1775276924,1742315127,1034867998,866637845,566021896,800440835,92987698,193195065,429456164,395441711,1984812685,2017778566,1784663195,1683407248,1315562145,1080094634,1383856311,1551037884,101039829,135050206,437757123,337553864,1042385657,807962610,573804783,742039012,2531067453,2564033334,2328828971,2227573024,2935566865,2700099354,3001755655,3168937228,3868552805,3902563182,4203181171,4102977912,3736164937,3501741890,3265478751,3433712980,1106041591,1340463100,1576976609,1408749034,2043211483,2009195472,1708848333,1809054150,832877231,1068351396,766945465,599762354,159417987,126454664,361929877,463180190,2709260871,2943682380,3178106961,3009879386,2572697195,2538681184,2236228733,2336434550,3509871135,3745345300,3441850377,3274667266,3910161971,3877198648,4110568485,4211818798,2597806476,2497604743,2261089178,2295101073,2733856160,2902087851,3202437046,2968011453,3936291284,3835036895,4136440770,4169408201,3535486456,3702665459,3467192302,3231722213,2051518780,1951317047,1716890410,1750902305,1113818384,1282050075,1584504582,1350078989,168810852,67556463,371049330,404016761,841739592,1008918595,775550814,540080725,3969562369,3801332234,4035489047,4269907996,3569255213,3669462566,3366754619,3332740144,2631065433,2463879762,2160117071,2395588676,2767645557,2868897406,3102011747,3069049960,202008497,33778362,270040487,504459436,875451293,975658646,675039627,641025152,2084704233,1917518562,1615861247,1851332852,1147550661,1248802510,1484005843,1451044056,933301370,967311729,733156972,632953703,260388950,25965917,328671808,496906059,1206477858,1239443753,1543208500,1441952575,2144161806,1908694277,1675577880,1842759443,3610369226,3644379585,3408119516,3307916247,4011190502,3776767469,4077384432,4245618683,2809771154,2842737049,3144396420,3043140495,2673705150,2438237621,2203032232,2370213795],jt=[0,185469197,370938394,487725847,741876788,657861945,975451694,824852259,1483753576,1400783205,1315723890,1164071807,1950903388,2135319889,1649704518,1767536459,2967507152,3152976349,2801566410,2918353863,2631447780,2547432937,2328143614,2177544179,3901806776,3818836405,4270639778,4118987695,3299409036,3483825537,3535072918,3652904859,2077965243,1893020342,1841768865,1724457132,1474502543,1559041666,1107234197,1257309336,598438867,681933534,901210569,1052338372,261314535,77422314,428819965,310463728,3409685355,3224740454,3710368113,3593056380,3875770207,3960309330,4045380933,4195456072,2471224067,2554718734,2237133081,2388260884,3212035895,3028143674,2842678573,2724322336,4138563181,4255350624,3769721975,3955191162,3667219033,3516619604,3431546947,3347532110,2933734917,2782082824,3099667487,3016697106,2196052529,2313884476,2499348523,2683765030,1179510461,1296297904,1347548327,1533017514,1786102409,1635502980,2087309459,2003294622,507358933,355706840,136428751,53458370,839224033,957055980,605657339,790073846,2373340630,2256028891,2607439820,2422494913,2706270690,2856345839,3075636216,3160175349,3573941694,3725069491,3273267108,3356761769,4181598602,4063242375,4011996048,3828103837,1033297158,915985419,730517276,545572369,296679730,446754879,129166120,213705253,1709610350,1860738147,1945798516,2029293177,1239331162,1120974935,1606591296,1422699085,4148292826,4233094615,3781033664,3931371469,3682191598,3497509347,3446004468,3328955385,2939266226,2755636671,3106780840,2988687269,2198438022,2282195339,2501218972,2652609425,1201765386,1286567175,1371368976,1521706781,1805211710,1620529459,2105887268,1988838185,533804130,350174575,164439672,46346101,870912086,954669403,636813900,788204353,2358957921,2274680428,2592523643,2441661558,2695033685,2880240216,3065962831,3182487618,3572145929,3756299780,3270937875,3388507166,4174560061,4091327024,4006521127,3854606378,1014646705,930369212,711349675,560487590,272786309,457992840,106852767,223377554,1678381017,1862534868,1914052035,2031621326,1211247597,1128014560,1580087799,1428173050,32283319,182621114,401639597,486441376,768917123,651868046,1003007129,818324884,1503449823,1385356242,1333838021,1150208456,1973745387,2125135846,1673061617,1756818940,2970356327,3120694122,2802849917,2887651696,2637442643,2520393566,2334669897,2149987652,3917234703,3799141122,4284502037,4100872472,3309594171,3460984630,3545789473,3629546796,2050466060,1899603969,1814803222,1730525723,1443857720,1560382517,1075025698,1260232239,575138148,692707433,878443390,1062597235,243256656,91341917,409198410,325965383,3403100636,3252238545,3704300486,3620022987,3874428392,3990953189,4042459122,4227665663,2460449204,2578018489,2226875310,2411029155,3198115200,3046200461,2827177882,2743944855],Kt=[0,218828297,437656594,387781147,875313188,958871085,775562294,590424639,1750626376,1699970625,1917742170,2135253587,1551124588,1367295589,1180849278,1265195639,3501252752,3720081049,3399941250,3350065803,3835484340,3919042237,4270507174,4085369519,3102249176,3051593425,2734591178,2952102595,2361698556,2177869557,2530391278,2614737639,3145456443,3060847922,2708326185,2892417312,2404901663,2187128086,2504130317,2555048196,3542330227,3727205754,3375740769,3292445032,3876557655,3926170974,4246310725,4027744588,1808481195,1723872674,1910319033,2094410160,1608975247,1391201670,1173430173,1224348052,59984867,244860394,428169201,344873464,935293895,984907214,766078933,547512796,1844882806,1627235199,2011214180,2062270317,1507497298,1423022939,1137477952,1321699145,95345982,145085239,532201772,313773861,830661914,1015671571,731183368,648017665,3175501286,2957853679,2807058932,2858115069,2305455554,2220981195,2474404304,2658625497,3575528878,3625268135,3473416636,3254988725,3778151818,3963161475,4213447064,4130281361,3599595085,3683022916,3432737375,3247465558,3802222185,4020912224,4172763771,4122762354,3201631749,3017672716,2764249623,2848461854,2331590177,2280796200,2431590963,2648976442,104699613,188127444,472615631,287343814,840019705,1058709744,671593195,621591778,1852171925,1668212892,1953757831,2037970062,1514790577,1463996600,1080017571,1297403050,3673637356,3623636965,3235995134,3454686199,4007360968,3822090177,4107101658,4190530515,2997825956,3215212461,2830708150,2779915199,2256734592,2340947849,2627016082,2443058075,172466556,122466165,273792366,492483431,1047239000,861968209,612205898,695634755,1646252340,1863638845,2013908262,1963115311,1446242576,1530455833,1277555970,1093597963,1636604631,1820824798,2073724613,1989249228,1436590835,1487645946,1337376481,1119727848,164948639,81781910,331544205,516552836,1039717051,821288114,669961897,719700128,2973530695,3157750862,2871682645,2787207260,2232435299,2283490410,2667994737,2450346104,3647212047,3564045318,3279033885,3464042516,3980931627,3762502690,4150144569,4199882800,3070356634,3121275539,2904027272,2686254721,2200818878,2384911031,2570832044,2486224549,3747192018,3528626907,3310321856,3359936201,3950355702,3867060991,4049844452,4234721005,1739656202,1790575107,2108100632,1890328081,1402811438,1586903591,1233856572,1149249077,266959938,48394827,369057872,418672217,1002783846,919489135,567498868,752375421,209336225,24197544,376187827,459744698,945164165,895287692,574624663,793451934,1679968233,1764313568,2117360635,1933530610,1343127501,1560637892,1243112415,1192455638,3704280881,3519142200,3336358691,3419915562,3907448597,3857572124,4075877127,4294704398,3029510009,3113855344,2927934315,2744104290,2159976285,2377486676,2594734927,2544078150],Ot=[0,151849742,303699484,454499602,607398968,758720310,908999204,1059270954,1214797936,1097159550,1517440620,1400849762,1817998408,1699839814,2118541908,2001430874,2429595872,2581445614,2194319100,2345119218,3034881240,3186202582,2801699524,2951971274,3635996816,3518358430,3399679628,3283088770,4237083816,4118925222,4002861748,3885750714,1002142683,850817237,698445255,548169417,529487843,377642221,227885567,77089521,1943217067,2061379749,1640576439,1757691577,1474760595,1592394909,1174215055,1290801793,2875968315,2724642869,3111247143,2960971305,2405426947,2253581325,2638606623,2487810577,3808662347,3926825029,4044981591,4162096729,3342319475,3459953789,3576539503,3693126241,1986918061,2137062819,1685577905,1836772287,1381620373,1532285339,1078185097,1229899655,1040559837,923313619,740276417,621982671,439452389,322734571,137073913,19308535,3871163981,4021308739,4104605777,4255800159,3263785589,3414450555,3499326569,3651041127,2933202493,2815956275,3167684641,3049390895,2330014213,2213296395,2566595609,2448830231,1305906550,1155237496,1607244650,1455525988,1776460110,1626319424,2079897426,1928707164,96392454,213114376,396673818,514443284,562755902,679998000,865136418,983426092,3708173718,3557504664,3474729866,3323011204,4180808110,4030667424,3945269170,3794078908,2507040230,2623762152,2272556026,2390325492,2975484382,3092726480,2738905026,2857194700,3973773121,3856137295,4274053469,4157467219,3371096953,3252932727,3673476453,3556361835,2763173681,2915017791,3064510765,3215307299,2156299017,2307622919,2459735317,2610011675,2081048481,1963412655,1846563261,1729977011,1480485785,1362321559,1243905413,1126790795,878845905,1030690015,645401037,796197571,274084841,425408743,38544885,188821243,3613494426,3731654548,3313212038,3430322568,4082475170,4200115116,3780097726,3896688048,2668221674,2516901860,2366882550,2216610296,3141400786,2989552604,2837966542,2687165888,1202797690,1320957812,1437280870,1554391400,1669664834,1787304780,1906247262,2022837584,265905162,114585348,499347990,349075736,736970802,585122620,972512814,821712160,2595684844,2478443234,2293045232,2174754046,3196267988,3079546586,2895723464,2777952454,3537852828,3687994002,3234156416,3385345166,4142626212,4293295786,3841024952,3992742070,174567692,57326082,410887952,292596766,777231668,660510266,1011452712,893681702,1108339068,1258480242,1343618912,1494807662,1715193156,1865862730,1948373848,2100090966,2701949495,2818666809,3004591147,3122358053,2235061775,2352307457,2535604243,2653899549,3915653703,3764988233,4219352155,4067639125,3444575871,3294430577,3746175075,3594982253,836553431,953270745,600235211,718002117,367585007,484830689,133361907,251657213,2041877159,1891211689,1806599355,1654886325,1568718495,1418573201,1335535747,1184342925];function WD(W){let G=[];for(let X=0;X<W.length;X+=4)G.push(W[X]<<24|W[X+1]<<16|W[X+2]<<8|W[X+3]);return G}class YA{get key(){return Q9(this,XA,"f").slice()}constructor(W){if(XA.set(this,void 0),y5.set(this,void 0),a7.set(this,void 0),!(this instanceof YA))throw Error("AES must be instanitated with `new`");eO(this,XA,new Uint8Array(W),"f");let G=Zt[this.key.length];if(G==null)throw TypeError("invalid key size (must be 16, 24 or 32 bytes)");eO(this,a7,[],"f"),eO(this,y5,[],"f");for(let N=0;N<=G;N++)Q9(this,a7,"f").push([0,0,0,0]),Q9(this,y5,"f").push([0,0,0,0]);let X=(G+1)*4,Y=this.key.length/4,J=WD(this.key),Z;for(let N=0;N<Y;N++)Z=N>>2,Q9(this,a7,"f")[Z][N%4]=J[N],Q9(this,y5,"f")[G-Z][N%4]=J[N];let V=0,U=Y,Q;while(U<X){if(Q=J[Y-1],J[0]^=_5[Q>>16&255]<<24^_5[Q>>8&255]<<16^_5[Q&255]<<8^_5[Q>>24&255]^Vt[V]<<24,V+=1,Y!=8)for(let H=1;H<Y;H++)J[H]^=J[H-1];else{for(let H=1;H<Y/2;H++)J[H]^=J[H-1];Q=J[Y/2-1],J[Y/2]^=_5[Q&255]^_5[Q>>8&255]<<8^_5[Q>>16&255]<<16^_5[Q>>24&255]<<24;for(let H=Y/2+1;H<Y;H++)J[H]^=J[H-1]}let N=0,q,A;while(N<Y&&U<X)q=U>>2,A=U%4,Q9(this,a7,"f")[q][A]=J[N],Q9(this,y5,"f")[G-q][A]=J[N++],U++}for(let N=1;N<G;N++)for(let q=0;q<4;q++)Q=Q9(this,y5,"f")[N][q],Q9(this,y5,"f")[N][q]=wt[Q>>24&255]^jt[Q>>16&255]^Kt[Q>>8&255]^Ot[Q&255]}encrypt(W){if(W.length!=16)throw TypeError("invalid plaintext size (must be 16 bytes)");let G=Q9(this,a7,"f").length-1,X=[0,0,0,0],Y=WD(W);for(let V=0;V<4;V++)Y[V]^=Q9(this,a7,"f")[0][V];for(let V=1;V<G;V++){for(let U=0;U<4;U++)X[U]=Ut[Y[U]>>24&255]^Qt[Y[(U+1)%4]>>16&255]^Nt[Y[(U+2)%4]>>8&255]^qt[Y[(U+3)%4]&255]^Q9(this,a7,"f")[V][U];Y=X.slice()}let J=new Uint8Array(16),Z=0;for(let V=0;V<4;V++)Z=Q9(this,a7,"f")[G][V],J[4*V]=(_5[Y[V]>>24&255]^Z>>24)&255,J[4*V+1]=(_5[Y[(V+1)%4]>>16&255]^Z>>16)&255,J[4*V+2]=(_5[Y[(V+2)%4]>>8&255]^Z>>8)&255,J[4*V+3]=(_5[Y[(V+3)%4]&255]^Z)&255;return J}decrypt(W){if(W.length!=16)throw TypeError("invalid ciphertext size (must be 16 bytes)");let G=Q9(this,y5,"f").length-1,X=[0,0,0,0],Y=WD(W);for(let V=0;V<4;V++)Y[V]^=Q9(this,y5,"f")[0][V];for(let V=1;V<G;V++){for(let U=0;U<4;U++)X[U]=Ht[Y[U]>>24&255]^At[Y[(U+3)%4]>>16&255]^zt[Y[(U+2)%4]>>8&255]^It[Y[(U+1)%4]&255]^Q9(this,y5,"f")[V][U];Y=X.slice()}let J=new Uint8Array(16),Z=0;for(let V=0;V<4;V++)Z=Q9(this,y5,"f")[G][V],J[4*V]=(GA[Y[V]>>24&255]^Z>>24)&255,J[4*V+1]=(GA[Y[(V+3)%4]>>16&255]^Z>>16)&255,J[4*V+2]=(GA[Y[(V+2)%4]>>8&255]^Z>>8)&255,J[4*V+3]=(GA[Y[(V+1)%4]&255]^Z)&255;return J}}XA=new WeakMap,y5=new WeakMap,a7=new WeakMap;class EU{constructor(W,G,X){if(X&&!(this instanceof X))throw Error(`${W} must be instantiated with "new"`);Object.defineProperties(this,{aes:{enumerable:!0,value:new YA(G)},name:{enumerable:!0,value:W}})}}var JA=function(W,G,X,Y,J){if(Y==="m")throw TypeError("Private method is not writable");if(Y==="a"&&!J)throw TypeError("Private accessor was defined without a setter");if(typeof G==="function"?W!==G||!J:!G.has(W))throw TypeError("Cannot write private member to an object whose class did not declare it");return Y==="a"?J.call(W,X):J?J.value=X:G.set(W,X),X},ZJ=function(W,G,X,Y){if(X==="a"&&!Y)throw TypeError("Private accessor was defined without a getter");if(typeof G==="function"?W!==G||!Y:!G.has(W))throw TypeError("Cannot read private member from an object whose class did not declare it");return X==="m"?Y:X==="a"?Y.call(W):Y?Y.value:G.get(W)},$U,Y6;class FU extends EU{constructor(W,G){super("ECC",W,FU);if($U.set(this,void 0),Y6.set(this,void 0),G){if(G.length%16)throw TypeError("invalid iv size (must be 16 bytes)");JA(this,$U,new Uint8Array(G),"f")}else JA(this,$U,new Uint8Array(16),"f");JA(this,Y6,this.iv,"f")}get iv(){return new Uint8Array(ZJ(this,$U,"f"))}encrypt(W){if(W.length%16)throw TypeError("invalid plaintext size (must be multiple of 16 bytes)");let G=new Uint8Array(W.length);for(let X=0;X<W.length;X+=16){for(let Y=0;Y<16;Y++)ZJ(this,Y6,"f")[Y]^=W[X+Y];JA(this,Y6,this.aes.encrypt(ZJ(this,Y6,"f")),"f"),G.set(ZJ(this,Y6,"f"),X)}return G}decrypt(W){if(W.length%16)throw TypeError("invalid ciphertext size (must be multiple of 16 bytes)");let G=new Uint8Array(W.length);for(let X=0;X<W.length;X+=16){let Y=this.aes.decrypt(W.subarray(X,X+16));for(let J=0;J<16;J++)G[X+J]=Y[J]^ZJ(this,Y6,"f")[J],ZJ(this,Y6,"f")[J]=W[X+J]}return G}}$U=new WeakMap,Y6=new WeakMap;var VJ=function(W,G,X,Y,J){if(Y==="m")throw TypeError("Private method is not writable");if(Y==="a"&&!J)throw TypeError("Private accessor was defined without a setter");if(typeof G==="function"?W!==G||!J:!G.has(W))throw TypeError("Cannot write private member to an object whose class did not declare it");return Y==="a"?J.call(W,X):J?J.value=X:G.set(W,X),X},v5=function(W,G,X,Y){if(X==="a"&&!Y)throw TypeError("Private accessor was defined without a getter");if(typeof G==="function"?W!==G||!Y:!G.has(W))throw TypeError("Cannot read private member from an object whose class did not declare it");return X==="m"?Y:X==="a"?Y.call(W):Y?Y.value:G.get(W)},SU,bG,g5;class qW extends EU{constructor(W,G){super("CTR",W,qW);if(SU.set(this,void 0),bG.set(this,void 0),g5.set(this,void 0),VJ(this,g5,new Uint8Array(16),"f"),v5(this,g5,"f").fill(0),VJ(this,SU,v5(this,g5,"f"),"f"),VJ(this,bG,16,"f"),G==null)G=1;if(typeof G==="number")this.setCounterValue(G);else this.setCounterBytes(G)}get counter(){return new Uint8Array(v5(this,g5,"f"))}setCounterValue(W){if(!Number.isInteger(W)||W<0||W>Number.MAX_SAFE_INTEGER)throw TypeError("invalid counter initial integer value");for(let G=15;G>=0;--G)v5(this,g5,"f")[G]=W%256,W=Math.floor(W/256)}setCounterBytes(W){if(W.length!==16)throw TypeError("invalid counter initial Uint8Array value length");v5(this,g5,"f").set(W)}increment(){for(let W=15;W>=0;W--)if(v5(this,g5,"f")[W]===255)v5(this,g5,"f")[W]=0;else{v5(this,g5,"f")[W]++;break}}encrypt(W){var G,X;let Y=new Uint8Array(W);for(let J=0;J<Y.length;J++){if(v5(this,bG,"f")===16)VJ(this,SU,this.aes.encrypt(v5(this,g5,"f")),"f"),VJ(this,bG,0,"f"),this.increment();Y[J]^=v5(this,SU,"f")[VJ(this,bG,(X=v5(this,bG,"f"),G=X++,X),"f"),G]}return Y}decrypt(W){return this.encrypt(W)}}SU=new WeakMap,bG=new WeakMap,g5=new WeakMap;function GD(W){if(W.length<16)throw TypeError("PKCS#7 invalid length");let G=W[W.length-1];if(G>16)throw TypeError("PKCS#7 padding byte out of range");let X=W.length-G;for(let Y=0;Y<G;Y++)if(W[X+Y]!==G)throw TypeError("PKCS#7 invalid padding byte");return new Uint8Array(W.subarray(0,X))}function XD(W){if(typeof W==="string"&&!W.startsWith("0x"))W="0x"+W;return U7(W)}function UJ(W,G){W=String(W);while(W.length<G)W="0"+W;return W}function mG(W){if(typeof W==="string")return U9(W,"NFKC");return U7(W)}function T8(W,G){let X=G.match(/^([a-z0-9$_.-]*)(:([a-z]+))?(!)?$/i);s(X!=null,"invalid path","path",G);let Y=X[1],J=X[3],Z=X[4]==="!",V=W;for(let U of Y.toLowerCase().split(".")){if(Array.isArray(V)){if(!U.match(/^[0-9]+$/))break;V=V[parseInt(U)]}else if(typeof V==="object"){let Q=null;for(let N in V)if(N.toLowerCase()===U){Q=V[N];break}V=Q}else V=null;if(V==null)break}if(s(!Z||V!=null,"missing required value","path",Y),J&&V!=null){if(J==="int"){if(typeof V==="string"&&V.match(/^-?[0-9]+$/))return parseInt(V);else if(Number.isSafeInteger(V))return V}if(J==="number"){if(typeof V==="string"&&V.match(/^-?[0-9.]*$/))return parseFloat(V)}if(J==="data"){if(typeof V==="string")return XD(V)}if(J==="array"&&Array.isArray(V))return V;if(J===typeof V)return V;s(!1,`wrong type found for ${J} `,"path",Y)}return V}var B_="m/44'/60'/0'/0/0";function VA(W){try{let G=JSON.parse(W);if((G.version!=null?parseInt(G.version):0)===3)return!0}catch(G){}return!1}function Dt(W,G,X){if(T8(W,"crypto.cipher:string")==="aes-128-ctr"){let J=T8(W,"crypto.cipherparams.iv:data!"),Z=new qW(G,J);return C0(Z.decrypt(X))}X1(!1,"unsupported cipher","UNSUPPORTED_OPERATION",{operation:"decrypt"})}function ZA(W,G){let X=E0(G),Y=T8(W,"crypto.ciphertext:data!"),J=C0(Z8(W8([X.slice(16,32),Y]))).substring(2);s(J===T8(W,"crypto.mac:string!").toLowerCase(),"incorrect password","password","[ REDACTED ]");let Z=Dt(W,X.slice(0,16),Y),V=e4(Z);if(W.address){let N=W.address.toLowerCase();if(!N.startsWith("0x"))N="0x"+N;s(y1(N)===V,"keystore address/privateKey mismatch","address",W.address)}let U={address:V,privateKey:Z};if(T8(W,"x-ethers.version:string")==="0.1"){let N=X.slice(32,64),q=T8(W,"x-ethers.mnemonicCiphertext:data!"),A=T8(W,"x-ethers.mnemonicCounter:data!"),H=new qW(N,A);U.mnemonic={path:T8(W,"x-ethers.path:string")||B_,locale:T8(W,"x-ethers.locale:string")||"en",entropy:C0(E0(H.decrypt(q)))}}return U}function E_(W){let G=T8(W,"crypto.kdf:string");if(G&&typeof G==="string"){if(G.toLowerCase()==="scrypt"){let X=T8(W,"crypto.kdfparams.salt:data!"),Y=T8(W,"crypto.kdfparams.n:int!"),J=T8(W,"crypto.kdfparams.r:int!"),Z=T8(W,"crypto.kdfparams.p:int!");s(Y>0&&(Y&Y-1)===0,"invalid kdf.N","kdf.N",Y),s(J>0&&Z>0,"invalid kdf","kdf",G);let V=T8(W,"crypto.kdfparams.dklen:int!");return s(V===32,"invalid kdf.dklen","kdf.dflen",V),{name:"scrypt",salt:X,N:Y,r:J,p:Z,dkLen:64}}else if(G.toLowerCase()==="pbkdf2"){let X=T8(W,"crypto.kdfparams.salt:data!"),Y=T8(W,"crypto.kdfparams.prf:string!"),J=Y.split("-").pop();s(J==="sha256"||J==="sha512","invalid kdf.pdf","kdf.pdf",Y);let Z=T8(W,"crypto.kdfparams.c:int!"),V=T8(W,"crypto.kdfparams.dklen:int!");return s(V===32,"invalid kdf.dklen","kdf.dklen",V),{name:"pbkdf2",salt:X,count:Z,dkLen:V,algorithm:J}}}s(!1,"unsupported key-derivation function","kdf",G)}function YD(W,G){let X=JSON.parse(W),Y=mG(G),J=E_(X);if(J.name==="pbkdf2"){let{salt:A,count:H,dkLen:I,algorithm:w}=J,O=S5(Y,A,H,I,w);return ZA(X,O)}X1(J.name==="scrypt","cannot be reached","UNKNOWN_ERROR",{params:J});let{salt:Z,N:V,r:U,p:Q,dkLen:N}=J,q=UW(Y,Z,V,U,Q,N);return ZA(X,q)}function L_(W){return new Promise((G)=>{setTimeout(()=>{G()},W)})}async function JD(W,G,X){let Y=JSON.parse(W),J=mG(G),Z=E_(Y);if(Z.name==="pbkdf2"){if(X)X(0),await L_(0);let{salt:H,count:I,dkLen:w,algorithm:O}=Z,T=S5(J,H,I,w,O);if(X)X(1),await L_(0);return ZA(Y,T)}X1(Z.name==="scrypt","cannot be reached","UNKNOWN_ERROR",{params:Z});let{salt:V,N:U,r:Q,p:N,dkLen:q}=Z,A=await VW(J,V,U,Q,N,q,X);return ZA(Y,A)}function $_(W){let G=W.salt!=null?E0(W.salt,"options.salt"):x5(32),X=131072,Y=8,J=1;if(W.scrypt){if(W.scrypt.N)X=W.scrypt.N;if(W.scrypt.r)Y=W.scrypt.r;if(W.scrypt.p)J=W.scrypt.p}return s(typeof X==="number"&&X>0&&Number.isSafeInteger(X)&&(BigInt(X)&BigInt(X-1))===BigInt(0),"invalid scrypt N parameter","options.N",X),s(typeof Y==="number"&&Y>0&&Number.isSafeInteger(Y),"invalid scrypt r parameter","options.r",Y),s(typeof J==="number"&&J>0&&Number.isSafeInteger(J),"invalid scrypt p parameter","options.p",J),{name:"scrypt",dkLen:32,salt:G,N:X,r:Y,p:J}}function F_(W,G,X,Y){let J=E0(X.privateKey,"privateKey"),Z=Y.iv!=null?E0(Y.iv,"options.iv"):x5(16);s(Z.length===16,"invalid options.iv length","options.iv",Y.iv);let V=Y.uuid!=null?E0(Y.uuid,"options.uuid"):x5(16);s(V.length===16,"invalid options.uuid length","options.uuid",Y.iv);let U=W.slice(0,16),Q=W.slice(16,32),N=new qW(U,Z),q=E0(N.encrypt(J)),A=Z8(W8([Q,q])),H={address:X.address.substring(2).toLowerCase(),id:xH(V),version:3,Crypto:{cipher:"aes-128-ctr",cipherparams:{iv:C0(Z).substring(2)},ciphertext:C0(q).substring(2),kdf:"scrypt",kdfparams:{salt:C0(G.salt).substring(2),n:G.N,dklen:32,p:G.p,r:G.r},mac:A.substring(2)}};if(X.mnemonic){let I=Y.client!=null?Y.client:`ethers/${MH}`,w=X.mnemonic.path||B_,O=X.mnemonic.locale||"en",T=W.slice(32,64),F=E0(X.mnemonic.entropy,"account.mnemonic.entropy"),E=x5(16),g=new qW(T,E),k=E0(g.encrypt(F)),f=new Date,c="UTC--"+(f.getUTCFullYear()+"-"+UJ(f.getUTCMonth()+1,2)+"-"+UJ(f.getUTCDate(),2)+"T"+UJ(f.getUTCHours(),2)+"-"+UJ(f.getUTCMinutes(),2)+"-"+UJ(f.getUTCSeconds(),2)+".0Z")+"--"+H.address;H["x-ethers"]={client:I,gethFilename:c,path:w,locale:O,mnemonicCounter:C0(E).substring(2),mnemonicCiphertext:C0(k).substring(2),version:"0.1"}}return JSON.stringify(H)}function xU(W,G,X){if(X==null)X={};let Y=mG(G),J=$_(X),Z=UW(Y,J.salt,J.N,J.r,J.p,64);return F_(E0(Z),J,W,X)}async function kU(W,G,X){if(X==null)X={};let Y=mG(G),J=$_(X),Z=await VW(Y,J.salt,J.N,J.r,J.p,64,X.progressCallback);return F_(E0(Z),J,W,X)}var _U="m/44'/60'/0'/0/0",Ct=new Uint8Array([66,105,116,99,111,105,110,32,115,101,101,100]),HW=2147483648,Tt=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),Mt="0123456789abcdef";function UA(W,G){let X="";while(W)X=Mt[W%16]+X,W=Math.trunc(W/16);while(X.length<G*2)X="0"+X;return"0x"+X}function ZD(W){let G=E0(W),X=rY(B9(B9(G)),0,4),Y=W8([G,X]);return FH(Y)}var s7={};function S_(W,G,X,Y){let J=new Uint8Array(37);if(W&HW)X1(Y!=null,"cannot derive child of neutered node","UNSUPPORTED_OPERATION",{operation:"deriveChild"}),J.set(E0(Y),1);else J.set(E0(X));for(let V=24;V>=0;V-=8)J[33+(V>>3)]=W>>24-V&255;let Z=E0(XW("sha512",G,J));return{IL:Z.slice(0,32),IR:Z.slice(32)}}function x_(W,G){let X=G.split("/");if(s(X.length>0,"invalid path","path",G),X[0]==="m")s(W.depth===0,`cannot derive root path (i.e. path starting with "m/") for a node at non-zero depth ${W.depth}`,"path",G),X.shift();let Y=W;for(let J=0;J<X.length;J++){let Z=X[J];if(Z.match(/^[0-9]+'$/)){let V=parseInt(Z.substring(0,Z.length-1));s(V<HW,"invalid path index",`path[${J}]`,Z),Y=Y.deriveChild(HW+V)}else if(Z.match(/^[0-9]+$/)){let V=parseInt(Z);s(V<HW,"invalid path index",`path[${J}]`,Z),Y=Y.deriveChild(V)}else s(!1,"invalid path component",`path[${J}]`,Z)}return Y}class N9 extends hG{publicKey;fingerprint;parentFingerprint;mnemonic;chainCode;path;index;depth;constructor(W,G,X,Y,J,Z,V,U,Q){super(G,Q);o4(W,s7,"HDNodeWallet"),q8(this,{publicKey:G.compressedPublicKey});let N=rY(YW(B9(this.publicKey)),0,4);q8(this,{parentFingerprint:X,fingerprint:N,chainCode:Y,path:J,index:Z,depth:V}),q8(this,{mnemonic:U})}connect(W){return new N9(s7,this.signingKey,this.parentFingerprint,this.chainCode,this.path,this.index,this.depth,this.mnemonic,W)}#W(){let W={address:this.address,privateKey:this.privateKey},G=this.mnemonic;if(this.path&&G&&G.wordlist.locale==="en"&&G.password==="")W.mnemonic={path:this.path,locale:"en",entropy:G.entropy};return W}async encrypt(W,G){return await kU(this.#W(),W,{progressCallback:G})}encryptSync(W){return xU(this.#W(),W)}get extendedKey(){return X1(this.depth<256,"Depth too deep","UNSUPPORTED_OPERATION",{operation:"extendedKey"}),ZD(W8(["0x0488ADE4",UA(this.depth,1),this.parentFingerprint,UA(this.index,4),this.chainCode,W8(["0x00",this.privateKey])]))}hasPath(){return this.path!=null}neuter(){return new fG(s7,this.address,this.publicKey,this.parentFingerprint,this.chainCode,this.path,this.index,this.depth,this.provider)}deriveChild(W){let G=a8(W,"index");s(G<=4294967295,"invalid index","index",G);let X=this.path;if(X){if(X+="/"+(G&~HW),G&HW)X+="'"}let{IR:Y,IL:J}=S_(G,this.chainCode,this.publicKey,this.privateKey),Z=new n8(Q7((sY(J)+BigInt(this.privateKey))%Tt,32));return new N9(s7,Z,this.fingerprint,C0(Y),X,G,this.depth+1,this.mnemonic,this.provider)}derivePath(W){return x_(this,W)}static#G(W,G){s(i7(W),"invalid seed","seed","[REDACTED]");let X=E0(W,"seed");s(X.length>=16&&X.length<=64,"invalid seed","seed","[REDACTED]");let Y=E0(XW("sha512",Ct,X)),J=new n8(C0(Y.slice(0,32)));return new N9(s7,J,"0x00000000",C0(Y.slice(32)),"m",0,0,G,null)}static fromExtendedKey(W){let G=H8(SH(W));s(G.length===82||ZD(G.slice(0,78))===W,"invalid extended key","extendedKey","[ REDACTED ]");let X=G[4],Y=C0(G.slice(5,9)),J=parseInt(C0(G.slice(9,13)).substring(2),16),Z=C0(G.slice(13,45)),V=G.slice(45,78);switch(C0(G.slice(0,4))){case"0x0488b21e":case"0x043587cf":{let U=C0(V);return new fG(s7,e4(U),U,Y,Z,null,J,X,null)}case"0x0488ade4":case"0x04358394 ":if(V[0]!==0)break;return new N9(s7,new n8(V.slice(1)),Y,Z,null,J,X,null,null)}s(!1,"invalid extended key prefix","extendedKey","[ REDACTED ]")}static createRandom(W,G,X){if(W==null)W="";if(G==null)G=_U;if(X==null)X=G6.wordlist();let Y=X6.fromEntropy(x5(16),W,X);return N9.#G(Y.computeSeed(),Y).derivePath(G)}static fromMnemonic(W,G){if(!G)G=_U;return N9.#G(W.computeSeed(),W).derivePath(G)}static fromPhrase(W,G,X,Y){if(G==null)G="";if(X==null)X=_U;if(Y==null)Y=G6.wordlist();let J=X6.fromPhrase(W,G,Y);return N9.#G(J.computeSeed(),J).derivePath(X)}static fromSeed(W){return N9.#G(W,null)}}class fG extends BU{publicKey;fingerprint;parentFingerprint;chainCode;path;index;depth;constructor(W,G,X,Y,J,Z,V,U,Q){super(G,Q);o4(W,s7,"HDNodeVoidWallet"),q8(this,{publicKey:X});let N=rY(YW(B9(X)),0,4);q8(this,{publicKey:X,fingerprint:N,parentFingerprint:Y,chainCode:J,path:Z,index:V,depth:U})}connect(W){return new fG(s7,this.address,this.publicKey,this.parentFingerprint,this.chainCode,this.path,this.index,this.depth,W)}get extendedKey(){return X1(this.depth<256,"Depth too deep","UNSUPPORTED_OPERATION",{operation:"extendedKey"}),ZD(W8(["0x0488B21E",UA(this.depth,1),this.parentFingerprint,UA(this.index,4),this.chainCode,this.publicKey]))}hasPath(){return this.path!=null}deriveChild(W){let G=a8(W,"index");s(G<=4294967295,"invalid index","index",G);let X=this.path;if(X){if(X+="/"+(G&~HW),G&HW)X+="'"}let{IR:Y,IL:J}=S_(G,this.chainCode,this.publicKey,null),Z=n8.addPoints(J,this.publicKey,!0),V=e4(Z);return new fG(s7,V,Z,this.fingerprint,C0(Y),X,G,this.depth+1,this.provider)}derivePath(W){return x_(this,W)}}function QA(W){try{if(JSON.parse(W).encseed)return!0}catch(G){}return!1}function NA(W,G){let X=JSON.parse(W),Y=mG(G),J=y1(T8(X,"ethaddr:string!")),Z=XD(T8(X,"encseed:string!"));s(Z&&Z.length%16===0,"invalid encseed","json",W);let V=E0(S5(Y,Y,2000,32,"sha256")).slice(0,16),U=Z.slice(0,16),Q=Z.slice(16),N=new FU(V,U),q=GD(E0(N.decrypt(Q))),A="";for(let H=0;H<q.length;H++)A+=String.fromCharCode(q[H]);return{address:J,privateKey:W6(A)}}function k_(W){return new Promise((G)=>{setTimeout(()=>{G()},W)})}class J6 extends hG{constructor(W,G){if(typeof W==="string"&&!W.startsWith("0x"))W="0x"+W;let X=typeof W==="string"?new n8(W):W;super(X,G)}connect(W){return new J6(this.signingKey,W)}async encrypt(W,G){let X={address:this.address,privateKey:this.privateKey};return await kU(X,W,{progressCallback:G})}encryptSync(W){let G={address:this.address,privateKey:this.privateKey};return xU(G,W)}static#W(W){if(s(W,"invalid JSON wallet","json","[ REDACTED ]"),"mnemonic"in W&&W.mnemonic&&W.mnemonic.locale==="en"){let X=X6.fromEntropy(W.mnemonic.entropy),Y=N9.fromMnemonic(X,W.mnemonic.path);if(Y.address===W.address&&Y.privateKey===W.privateKey)return Y;console.log("WARNING: JSON mismatch address/privateKey != mnemonic; fallback onto private key")}let G=new J6(W.privateKey);return s(G.address===W.address,"address/privateKey mismatch","json","[ REDACTED ]"),G}static async fromEncryptedJson(W,G,X){let Y=null;if(VA(W))Y=await JD(W,G,X);else if(QA(W)){if(X)X(0),await k_(0);if(Y=NA(W,G),X)X(1),await k_(0)}return J6.#W(Y)}static fromEncryptedJsonSync(W,G){let X=null;if(VA(W))X=YD(W,G);else if(QA(W))X=NA(W,G);else s(!1,"invalid JSON wallet","json","[ REDACTED ]");return J6.#W(X)}static createRandom(W){let G=N9.createRandom();if(W)return G.connect(W);return G}static fromPhrase(W,G){let X=N9.fromPhrase(W);if(G)return X.connect(G);return X}}var qA=(W)=>{let G=(X)=>X&&typeof X==="object"&&!Array.isArray(X)?Object.keys(X).sort().reduce((Y,J)=>(Y[J]=G(X[J]),Y),{}):Array.isArray(X)?X.map(G):X;return JSON.stringify(G(W))},Lt=(W,G)=>{try{return y1(PU(U9(qA(W)),G))}catch{return null}},UD=(W)=>{if(!W?.signature||!W?.originEthAddress||!W?.originUser)return{ok:!1,reason:"missing-fields"};let G;try{if(G=y1(W.originEthAddress),y1(W.originUser)!==G)return{ok:!1,reason:"address-mismatch"}}catch{return{ok:!1,reason:"invalid-address"}}let{signature:X,originEthAddress:Y,...J}=W;try{let Z=PU(U9(qA(J)),X);if(y1(Z)!==G)return{ok:!1,reason:"invalid-signature"};let{originUser:V,...U}=J;return{ok:!0,normalizedOriginEthAddress:G,payload:U}}catch(Z){return{ok:!1,reason:"verify-error",error:Z}}},__=({constitution:W=[],customRoles:G=null,getNode:X})=>{let Y=W.map((E)=>{try{return y1(E)}catch{return null}}).filter(Boolean),J=G??QD,Z=(E,g)=>ND(J,E,g),V=new Map,U=(E,g)=>{if(V.size>4096)V.clear();if(!V.has(g))V.set(g,Lt(E,g));return V.get(g)},Q=(E)=>E?.owner??E?._meta?.owner,N=(E)=>typeof E==="string"&&E.startsWith("user:"),q=(E,g,k)=>E===g||["write","delete"].includes(k?.[E]),A=(E,g,k)=>E===g||k?.[E]==="delete",H=(E,g)=>E.physical-g.physical||E.logical-g.logical,I=({type:E,id:g,sourceId:k,targetId:f,value:l,timestamp:c,originUser:d})=>k?{type:E,sourceId:k,targetId:f,timestamp:c,originUser:d}:{type:E,id:g,value:l,timestamp:c,originUser:d},w=(E)=>{if(Y.includes(E))return"superadmin";let g=X(`user:${E}`)?.value;if(!g?.role)return"guest";return g.expiresAt&&new Date(g.expiresAt).getTime()<Date.now()?"guest":g.role},O=(E,g)=>!!E?.sig&&Y.includes(E.author)&&U({type:"upsert",id:g,value:E.value,timestamp:E.ts,originUser:E.author},E.sig)===E.author,T=(E)=>E?.meta?.role??(E?.meta&&{...E.meta,ts:E.meta.ts??E.timestamp}),F=(E,g,k)=>[E,T(g)].filter((f)=>O(f,k)).sort((f,l)=>H(l.ts,f.ts))[0];return{op(E,g){if(!E?.signature)return!1;let k=U(I(E),E.signature);if(!k||k!==E.originUser)return!1;let f=E.sourceId??E.id,l=E.type==="remove"?"delete":E.sourceId?"link":"write";if(N(f)){if(Y.includes(k))return!0;if(l!=="write"||k!==f.slice(5))return!1;if(g&&!Z(w(k),"write"))return!1;let{role:h="guest",expiresAt:W0=null}=F(E.receipt,g,f)?.value??{},H0=E.value??{};return H0.role===h&&(H0.expiresAt??null)===W0}if(!Z(w(k),l))return!1;let c=Q(g?.value);if(c)return(l==="delete"?A:q)(k,c,g.value.collaborators);let d=Q(E.value);return!d||k===d},opOf(E,g){let k=g.meta??{};return{type:"upsert",id:E,value:k.value??g.value,timestamp:k.ts??g.timestamp,originUser:k.author,originEthAddress:k.author,signature:k.sig,...k.role&&{receipt:k.role}}},receipt(E,g,k){if(!E?.signature)return null;let f=U(I(E),E.signature),l={author:f,sig:E.signature};if(H(E.timestamp,k.timestamp)!==0)l.ts=E.timestamp;if(N(E.id)){if(l.value=E.value,!Y.includes(f)){let c=F(E.receipt,g,E.id);if(c)l.role=c}}return l}}};function y_(W,G=[]){let X=String(W??"").trim();if(!X)throw Error("sm-server: signing key required (GDB_SM_KEY)");let Y=X.includes(" ")?N9.fromPhrase(X):new J6(X),J=y1(Y.address),Z=new Set([...G,J].map((Q)=>{try{return y1(Q)}catch{return null}}).filter(Boolean));return{address:J,superAdmins:Z,canonicalize:qA,signOps:async(Q)=>{let N=[];for(let q of Q){if(q?.signature&&q?.originEthAddress&&q?.originUser){N.push(q);continue}let A={...q,originUser:J},H=await Y.signMessage(U9(qA(A)));N.push({...q,originUser:J,originEthAddress:J,signature:H})}return N},verifyOp:UD,isSuperAdmin:(Q)=>{try{return Z.has(y1(Q))}catch{return!1}}}}var QD={superadmin:{can:["assignRole","deleteAny"],inherits:["admin"]},admin:{can:["delete"],inherits:["manager"]},manager:{can:["publish"],inherits:["user"]},user:{can:["write","link","sync"],inherits:["guest"]},guest:{can:["read","sync"]}},Bt=Object.keys(QD),ND=(W,G,X,Y=new Set)=>{if(!G||!W[G]||Y.has(G))return!1;if(Y.add(G),W[G].can?.includes(X))return!0;return(W[G].inherits??[]).some((J)=>ND(W,J,X,new Set(Y)))},Et=(W)=>W==="upsert"?"write":W==="remove"?"delete":W==="link"||W==="unlink"?"link":W==="sync"||W==="deltaSync"?"sync":"unknown",VD=(W)=>`${W.slice(0,6)}...${W.slice(-4)}`,v_=({constitution:W=[],customRoles:G=null,getNode:X})=>{let Y=W.map((U)=>{try{return y1(U)}catch{return null}}).filter(Boolean),J=G??QD,Z=(U)=>{let Q=X(`user:${U}`)?.value;if(!Q?.role)return"guest";if(Q.expiresAt&&new Date(Q.expiresAt).getTime()<Date.now())return"guest";return Q.role},V=(U)=>{try{return Y.includes(y1(U??""))}catch{return!1}};return async(U)=>{let Q=[];for(let N of U){if(N?.type==="sync"){Q.push(N);continue}if(N?.type==="fullStateSync"||N?.type==="deltaSync"){if(!(N.signature&&N.originEthAddress&&N.originUser)){Q.push(N);continue}let E=UD(N);if(E.ok)Q.push(E.payload);else console.warn(`\u26A0\uFE0F SM: ${N.type} rejected: ${E.reason}`);continue}let q=UD(N);if(!q.ok){console.warn(`\u26A0\uFE0F SM: invalid signed operation: ${q.reason}`);continue}let{normalizedOriginEthAddress:A,payload:H}=q,I=Y.includes(A)?"superadmin":Z(A),w={...H,signer:A,originUser:N.originUser,originEthAddress:N.originEthAddress,signature:N.signature};if(H.type==="upsert"&&H.id===`user:${A}`&&!X(H.id)){Q.push(w);continue}let{role:O,ethAddress:T}=H.value??{};if(O==="superadmin"&&!V(T)){console.warn(`\u26A0\uFE0F SM: [POLICY] ${VD(A)} tried to assign superadmin to ${VD(String(T??""))}. Blocked.`);continue}let F=Et(H.type);if(ND(J,I,F))Q.push(w);else console.warn(`\u26A0\uFE0F SM: ${VD(A)} (role: ${I}) DENIED ${F}`)}return Q}};function g_(W,G,X,{intervalMs:Y=4000,settleMs:J=15000,customRoles:Z=null}={}){let V=new Set([...Bt,...Object.keys(Z??{})]),U=async(A,H,I=null)=>{let w=y1(A);if(!V.has(H))throw Error(`Role '${H}' is not a defined role.`);let O=`user:${w}`,T=(await W.get(O)).result?.value||{};await W.put({...T,ethAddress:w,role:H,assignedByEthAddress:G.address,expiresAt:I?new Date(I).toISOString():null,priority:!0},O)},Q=async()=>{let A=new Map;for(let H of X){let I=H.then?.assignRole;if(!I)continue;let w=[];try{({results:w=[]}=W.map({query:H.if}))}catch(O){console.error("\u274C GOVERNANCE: rule evaluation failed:",O.message);continue}for(let O of w){if(!O.id.startsWith("user:"))continue;if(G.isSuperAdmin(O.id.slice(5)))continue;if(H.offsetTimestamp&&(O.timestamp?.physical??0)>Date.now()-H.offsetTimestamp)continue;A.set(O.id,{role:I,current:O.value?.role})}}for(let[H,{role:I,current:w}]of A){if(w===I)continue;try{await U(H.slice(5),I),console.info(`\uD83D\uDCDC GOVERNANCE: ${H.slice(5)} '${w}' -> '${I}'`)}catch(O){console.error("\u274C GOVERNANCE: assignRole failed:",O.message)}}},N=null,q=setTimeout(()=>{N=setInterval(Q,Y),console.info(`\uD83D\uDCDC GOVERNANCE ENGINE: active \u2014 ${X.length} rule(s), every ${Y} ms.`)},J);return{assignRole:U,stop:()=>{if(clearTimeout(q),N)clearInterval(N)}}}var HD=(W)=>W&&typeof W==="object"?structuredClone(W):W,qD=(W,G=16)=>{let X=null,Y=null;return(...J)=>{if(Y??=Promise.withResolvers(),X!==null)clearTimeout(X);return X=setTimeout(async()=>{X=null;try{Y.resolve(await W(...J))}catch(Z){Y.reject(Z)}finally{Y=null}},G),Y.promise}},xt=(W)=>{let G=!1;return()=>{if(G)return;G=!0,setImmediate(()=>{G=!1,W()})}};function kt(W=1000){let G=[];return{add(X){if(X?.timestamp){if(G.push(X),G.length>W)G.splice(0,G.length-W)}},getOldest:()=>G[0]??null,getDelta:(X,Y)=>X?G.filter((J)=>Y(J.timestamp,X)>0):[...G],sign({type:X,id:Y,sourceId:J,timestamp:Z,originUser:V,originEthAddress:U,signature:Q}){let N=G.find((q)=>q.type===X&&(q.id??q.sourceId)===(Y??J)&&q.timestamp?.physical===Z?.physical&&q.timestamp?.logical===Z?.logical);if(N&&Q)Object.assign(N,{originUser:V,originEthAddress:U,signature:Q})},clear(){G=[]},entries:()=>[...G],setEntries(X=[]){if(G=Array.isArray(X)?[...X]:[],G.length>W)G.splice(0,G.length-W)}}}function _t(){let W={nodes:{}};return{get nodes(){return W.nodes},set nodes(G){W.nodes=G??{}},upsert(G,X,Y){let J=W.nodes[G];W.nodes[G]={id:G,value:HD(X),edges:J?.edges?[...J.edges]:[],timestamp:Y,...J?.meta&&{meta:J.meta}}},get:(G)=>W.nodes[G]??null,link(G,X,Y){let J=W.nodes[G],Z=W.nodes[X];if(J&&Z&&!J.edges.includes(X))W.nodes[G]={...J,edges:[...J.edges,X],timestamp:Y}},unlink(G,X,Y){let J=W.nodes[G];if(J?.edges.includes(X))W.nodes[G]={...J,edges:J.edges.filter((Z)=>Z!==X),timestamp:Y}},getAllNodes:()=>Object.values(W.nodes),serialize:()=>WX.deflate(hU(W.nodes)),deserialize(G){let X=G instanceof Uint8Array?G:new Uint8Array(G);W.nodes=AW(WX.inflate(X))}}}function yt(W,G){let X=St(W);if(X&&X!==".")Ft(X,{recursive:!0});let Y=new $t(W);Y.exec("PRAGMA journal_mode = WAL"),Y.exec("PRAGMA synchronous = NORMAL"),Y.exec(`
251
+ `)!==this.#G)throw Error(`BIP39 Wordlist for ${this.locale} FAILED`);this.#X=W}return this.#X}getWord(W){let G=this.#Y();return s(W>=0&&W<G.length,`invalid word index: ${W}`,"index",W),G[W]}getWordIndex(W){return this.#Y().indexOf(W)}}var Xt="0erleonalorenseinceregesticitStanvetearctssi#ch2Athck&tneLl0And#Il.yLeOutO=S|S%b/ra@SurdU'0Ce[Cid|CountCu'Hie=IdOu,-Qui*Ro[TT]T%T*[Tu$0AptDD-tD*[Ju,M.UltV<)Vi)0Rob-0FairF%dRaid0A(EEntRee0Ead0MRRp%tS!_rmBumCoholErtI&LLeyLowMo,O}PhaReadySoT Ways0A>urAz(gOngOuntU'd0Aly,Ch%Ci|G G!GryIm$K!Noun)Nu$O` Sw T&naTiqueXietyY1ArtOlogyPe?P!Pro=Ril1ChCt-EaEnaGueMMedM%MyOundR<+Re,Ri=RowTTefa@Ti,Tw%k0KPe@SaultSetSi,SumeThma0H!>OmTa{T&dT.udeTra@0Ct]D.Gu,NtTh%ToTumn0Era+OcadoOid0AkeA*AyEsomeFulKw?d0Is:ByChel%C#D+GL<)Lc#y~MbooN<aNn RRelyRga(R*lSeS-SketTt!3A^AnAutyCau'ComeEfF%eG(Ha=H(dLie=LowLtN^Nef./TrayTt Twe&Y#d3Cyc!DKeNdOlogyRdR`Tt _{AdeAmeAnketA,EakE[IndOodO[omOu'UeUrUsh_rdAtDyIlMbNeNusOkO,Rd R(gRrowSsTtomUn)XY_{etA(AndA[A=EadEezeI{Id+IefIghtIngIskOccoliOk&OnzeOomO` OwnUsh2Bb!DdyD+tFf$oIldLbLkL!tNd!Nk Rd&Rg R,SS(e[SyTt Y Zz:Bba+B(B!CtusGeKe~LmM aMpNN$N)lNdyNn#NoeNvasNy#Pab!P.$Pta(RRb#RdRgoRpetRryRtSeShS(o/!Su$TT$ogT^Teg%yTt!UghtU'Ut]Ve3Il(gL yM|NsusNturyRe$Rta(_irAlkAmp]An+AosApt Ar+A'AtEapE{Ee'EfErryE,I{&IefIldIm}yOi)Oo'R#-U{!UnkUrn0G?Nnam#Rc!Tiz&TyVil_imApArifyAwAyE<ErkEv I{I|IffImbIn-IpO{OgO'O`OudOwnUbUmpU, Ut^_^A,C#utDeFfeeIlInL!@L%LumnMb(eMeMf%tM-Mm#Mp<yNc tNdu@NfirmNg*[N}@Nsid NtrolNv()OkOlPp PyR$ReRnR*@/Tt#U^UntryUp!Ur'Us(V Yo>_{Ad!AftAmA}AshAt AwlAzyEamEd.EekEwI{etImeIspIt-OpO[Ou^OwdUci$UelUi'Umb!Un^UshYY,$2BeLtu*PPbo?dRiousRr|Rta(R=Sh]/omTe3C!:DMa+MpN)Ng R(gShUght WnY3AlBa>BrisCadeCemb CideCl(eC%a>C*a'ErF&'F(eFyG*eLayLiv M<dMi'Ni$Nti,NyP?tP&dPos.P`PutyRi=ScribeS tSignSkSpair/royTailTe@VelopVi)Vo>3AgramAlAm#dAryCeE'lEtFf G.$Gn.yLemmaNn NosaurRe@RtSag*eScov Sea'ShSmi[S%d Splay/<)V tVideV%)Zzy5Ct%Cum|G~Lph(Ma(Na>NkeyN%OrSeUb!Ve_ftAg#AmaA,-AwEamE[IftIllInkIpI=OpUmY2CkMbNeR(g/T^Ty1Arf1Nam-:G G!RlyRnR`Sily/Sy1HoOlogyOnomy0GeItUca>1F%t0G1GhtTh 2BowD E@r-Eg<tEm|Eph<tEvat%I>Se0B?kBodyBra)Er+Ot]PloyPow Pty0Ab!A@DD![D%'EmyErgyF%)Ga+G(eH<)JoyLi,OughR-hRollSu*T Ti*TryVelope1Isode0U$Uip0AA'OdeOs]R%Upt0CapeSayS&)Ta>0Ern$H-s1Id&)IlOkeOl=1A@Amp!Ce[Ch<+C.eCludeCu'Ecu>Erci'Hau,Hib.I!I,ItOt-P<dPe@Pi*Pla(Po'P*[T&dTra0EEbrow:Br-CeCultyDeIntI`~L'MeMilyMousNNcyNtasyRmSh]TT$Th TigueUltV%.e3Atu*Bru?yD $EEdElMa!N)/iv$T^V W3B Ct]EldGu*LeLmLt N$NdNeNg NishReRmR,Sc$ShTT}[X_gAmeAshAtAv%EeIghtIpOatO{O%Ow UidUshY_mCusGIlLd~owOdOtR)Re,R+tRkRtu}RumRw?dSsil/ UndX_gi!AmeEqu|EshI&dIn+OgOntO,OwnOz&U.2ElNNnyRna)RyTu*:D+tInLaxy~ yMePRa+Rba+Rd&Rl-Rm|SSpTeTh U+Ze3N $NiusN*Nt!Nu(e/u*2O,0AntFtGg!Ng RaffeRlVe_dAn)A*A[IdeImp'ObeOomOryO=OwUe_tDde[LdOdO'RillaSpelSsipV nWn_bA)A(AntApeA[Av.yEatE&IdIefItOc yOupOwUnt_rdE[IdeIltIt?N3M:B.IrLfMm M, NdPpyRb%RdRshR=,TVeWkZ?d3AdAl`ArtAvyD+hogIght~oLmetLpNRo3Dd&Gh~NtPRe/%y5BbyCkeyLdLeLiday~owMeNeyOdPeRnRr%R'Sp.$/TelUrV 5BGeM<Mb!M%Nd*dNgryNtRd!RryRtSb<d3Brid:1EOn0EaEntifyLe2N%e4LLeg$L}[0A+Ita>M&'Mu}Pa@Po'Pro=Pul'0ChCludeComeC*a'DexD-a>Do%Du,ryF<tFl-tF%mHa!H .Iti$Je@JuryMa>N Noc|PutQuiryS<eSe@SideSpi*/$lTa@T e,ToVe,V.eVol=3On0L<dOla>Sue0Em1Ory:CketGu?RZz3AlousAns~yWel9BInKeUr}yY5D+I)MpNg!Ni%Nk/:Ng?oo3EnEpT^upY3CkDD}yNdNgdomSsTT^&TeTt&Wi4EeIfeO{Ow:BBelB%Dd DyKeMpNgua+PtopR+T T(UghUndryVaWWnWsu.Y Zy3Ad AfArnA=Ctu*FtGG$G&dIsu*M#NdNg`NsOp?dSs#Tt Vel3ArB tyBr?yC&'FeFtGhtKeMbM.NkOnQuid/Tt!VeZ?d5AdAnB, C$CkG-NelyNgOpTt yUdUn+VeY$5CkyGga+Mb N?N^Xury3R-s:Ch(eDG-G}tIdIlInJ%KeMm$NNa+Nda>NgoNs]Nu$P!Rb!R^Rg(R(eRketRria+SkSs/ T^T i$ThTrixTt XimumZe3AdowAnAsu*AtCh<-D$DiaLodyLtMb M%yNt]NuRcyR+R.RryShSsa+T$Thod3Dd!DnightLk~]M-NdNimumN%Nu>Rac!Rr%S ySs/akeXXedXtu*5Bi!DelDifyMM|N.%NkeyN, N`OnR$ReRn(gSqu.oTh T]T%Unta(U'VeVie5ChFf(LeLtiplySc!SeumShroomS-/Tu$3Self/ yTh:I=MePk(Rrow/yT]Tu*3ArCkEdGati=G!@I` PhewR=/TTw%kUtr$V WsXt3CeGht5B!I'M(eeOd!Rm$R`SeTab!TeTh(gTi)VelW5C!?Mb R'T:K0EyJe@Li+Scu*S =Ta(Vious0CurE<Tob 0Or1FF Fi)T&2L1Ay0DI=Ymp-0It0CeEI#L(eLy1EnEraIn]Po'T]1An+B.Ch?dD D(?yG<I|Ig($Ph<0Tr-h0H 0Tdo%T TputTside0AlEnEr0NN 0Yg&0/ 0O}:CtDd!GeIrLa)LmNdaNelN-N` P RadeR|RkRrotRtySsT^ThTi|TrolTt nU'VeYm|3A)AnutArAs<tL-<NN$tyNcilOp!Pp Rfe@Rm.Rs#T2O}OtoRa'Ys-$0AnoCn-Ctu*E)GGe#~LotNkO} Pe/olT^Zza_)A}tA,-A>AyEa'Ed+U{UgUn+2EmEtIntL?LeLi)NdNyOlPul?Rt]S.]Ssib!/TatoTt yV tyWd W _@i)Ai'Ed-tEf Epa*Es|EttyEv|I)IdeIm?yIntI%.yIs#Iva>IzeOb!mO)[Odu)Of.OgramOje@Omo>OofOp tyOsp O>@OudOvide2Bl-Dd(g~LpL'Mpk(N^PilPpyR^a'R.yRpo'R'ShTZz!3Ramid:99Al.yAntumArt E,]I{ItIzO>:Bb.Cco#CeCkD?DioIlInI'~yMpN^NdomN+PidReTeTh V&WZ%3AdyAlAs#BelBuildC$lCei=CipeC%dCyc!Du)F!@F%mFu'G]G*tGul?Je@LaxLea'LiefLyMa(Memb M(dMo=Nd NewNtOp&PairPeatPla)P%tQui*ScueSemb!Si,Sour)Sp#'SultTi*T*atTurnUn]Ve$ViewW?d2Y`m0BBb#CeChDeD+F!GhtGidNgOtPp!SkTu$V$V 5AdA,BotBu,CketM<)OfOkieOmSeTa>UghUndU>Y$5Bb DeGLeNNwayR$:DDd!D}[FeIlLadLm#L#LtLu>MeMp!NdTisfyToshiU)Usa+VeY1A!AnA*Att E}HemeHoolI&)I[%sOrp]OutRapRe&RiptRub1AAr^As#AtC#dC*tCt]Cur.yEdEkGm|Le@~M(?Ni%N'Nt&)RiesRvi)Ss]Tt!TupV&_dowAftAllowA*EdEllEriffIeldIftI}IpIv O{OeOotOpOrtOuld O=RimpRugUff!Y0Bl(gCkDeE+GhtGnL|Lk~yLv Mil?Mp!N)NgR&/ Tua>XZe1A>Et^IIllInIrtUll0AbAmEepEnd I)IdeIghtImOg<OtOwUsh0AllArtI!OkeOo`0A{AkeApIffOw0ApCc Ci$CkDaFtL?Ldi LidLut]L=Me#eNgOnRryRtUlUndUpUr)U`0A)A*Ati$AwnEakEci$EedEllEndH eI)Id IkeInIr.L.OilOns%O#OrtOtRayReadR(gY0Ua*UeezeUir*l_b!AdiumAffA+AirsAmpAndArtA>AyEakEelEmEpE*oI{IllIngO{Oma^O}OolOryO=Ra>gyReetRikeR#gRugg!Ud|UffUmb!Y!0Bje@Bm.BwayC)[ChDd&Ff G?G+,ItMm NNnyN'tP PplyP*meReRfa)R+Rpri'RroundR=ySpe@/a(1AllowAmpApArmE?EetIftImIngIt^Ord1MbolMptomRup/em:B!Ck!GIlL|LkNkPeR+tSk/eTtooXi3A^Am~NN<tNnisNtRm/Xt_nkAtEmeEnE%yE*EyIngIsOughtReeRi=RowUmbUnd 0CketDeG LtMb MeNyPRedSsueT!5A,BaccoDayDdl EGe` I!tK&MatoM%rowNeNgueNightOlO`PP-Pp!R^RnadoRtoi'SsT$Uri,W?dW WnY_{AdeAff-Ag-A(Ansf ApAshA=lAyEatEeEndI$IbeI{Igg ImIpOphyOub!U{UeUlyUmpetU,U`Y2BeIt]Mb!NaN}lRkeyRnRt!1El=EntyI)InI,O1PeP-$:5Ly5B*lla0Ab!Awa*C!Cov D DoFairFoldHappyIf%mIqueItIv 'KnownLo{TilUsu$Veil1Da>GradeHoldOnP Set1B<Ge0A+EEdEfulE![U$0Il.y:C<tCuumGueLidL!yL=NNishP%Rious/Ult3H-!L=tNd%Ntu*NueRbRifyRs]RyS'lT <3Ab!Br<tCiousCt%yDeoEw~a+Nta+Ol(Rtu$RusSaS.Su$T$Vid5C$I)IdLc<oLumeTeYa+:GeG#ItLk~LnutNtRfa*RmRri%ShSp/eT VeY3Al`Ap#ArA'lA` BDd(gEk&dIrdLcome/T_!AtEatEelEnE*IpIsp 0DeD`FeLd~NNdowNeNgNkNn Nt ReSdomSeShT}[5LfM<Nd OdOlRdRkRldRryR`_pE{E,!I,I>Ong::Rd3Ar~ow9UUngU`:3BraRo9NeO",Yt="0x3c8acc1e7b08d8e76f9fda015ef48dc8c710a73cb7e0f77b2c18a9b5a7adde60",rO=null;class G6 extends iO{constructor(){super("en",Xt,Yt)}static wordlist(){if(rO==null)rO=new G6;return rO}}function R_(W){return(1<<W)-1<<8-W&255}function Jt(W){return(1<<W)-1&255}function aO(W,G){if(iY("NFKD"),G==null)G=G6.wordlist();let X=G.split(W);s(X.length%3===0&&X.length>=12&&X.length<=24,"invalid mnemonic length","mnemonic","[ REDACTED ]");let Y=new Uint8Array(Math.ceil(11*X.length/8)),J=0;for(let N=0;N<X.length;N++){let q=G.getWordIndex(X[N].normalize("NFKD"));s(q>=0,`invalid mnemonic word at index ${N}`,"mnemonic","[ REDACTED ]");for(let A=0;A<11;A++){if(q&1<<10-A)Y[J>>3]|=1<<7-J%8;J++}}let Z=32*X.length/3,V=X.length/3,U=R_(V),Q=E0(B9(Y.slice(0,Z/8)))[0]&U;return s(Q===(Y[Y.length-1]&U),"invalid mnemonic checksum","mnemonic","[ REDACTED ]"),C0(Y.slice(0,Z/8))}function sO(W,G){if(s(W.length%4===0&&W.length>=16&&W.length<=32,"invalid entropy size","entropy","[ REDACTED ]"),G==null)G=G6.wordlist();let X=[0],Y=11;for(let V=0;V<W.length;V++)if(Y>8)X[X.length-1]<<=8,X[X.length-1]|=W[V],Y-=8;else X[X.length-1]<<=Y,X[X.length-1]|=W[V]>>8-Y,X.push(W[V]&Jt(8-Y)),Y+=3;let J=W.length/4,Z=parseInt(B9(W).substring(2,4),16)&R_(J);return X[X.length-1]<<=J,X[X.length-1]|=Z>>8-J,G.join(X.map((V)=>G.getWord(V)))}var tO={};class X6{phrase;password;wordlist;entropy;constructor(W,G,X,Y,J){if(Y==null)Y="";if(J==null)J=G6.wordlist();o4(W,tO,"Mnemonic"),q8(this,{phrase:X,password:Y,wordlist:J,entropy:G})}computeSeed(){let W=U9("mnemonic"+this.password,"NFKD");return S5(U9(this.phrase,"NFKD"),W,2048,64,"sha512")}static fromPhrase(W,G,X){let Y=aO(W,X);return W=sO(E0(Y),X),new X6(tO,Y,W,G,X)}static fromEntropy(W,G,X){let Y=E0(W,"entropy"),J=sO(Y,X);return new X6(tO,C0(Y),J,G,X)}static entropyToPhrase(W,G){let X=E0(W,"entropy");return sO(X,G)}static phraseToEntropy(W,G){return aO(W,G)}static isValidMnemonic(W,G){try{return aO(W,G),!0}catch(X){}return!1}}/*! MIT License. Copyright 2015-2022 Richard Moore <me@ricmoo.com>. See LICENSE.txt. */var Q9=function(W,G,X,Y){if(X==="a"&&!Y)throw TypeError("Private accessor was defined without a getter");if(typeof G==="function"?W!==G||!Y:!G.has(W))throw TypeError("Cannot read private member from an object whose class did not declare it");return X==="m"?Y:X==="a"?Y.call(W):Y?Y.value:G.get(W)},eO=function(W,G,X,Y,J){if(Y==="m")throw TypeError("Private method is not writable");if(Y==="a"&&!J)throw TypeError("Private accessor was defined without a setter");if(typeof G==="function"?W!==G||!J:!G.has(W))throw TypeError("Cannot write private member to an object whose class did not declare it");return Y==="a"?J.call(W,X):J?J.value=X:G.set(W,X),X},XA,y5,a7,Zt={16:10,24:12,32:14},Vt=[1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145],_5=[99,124,119,123,242,107,111,197,48,1,103,43,254,215,171,118,202,130,201,125,250,89,71,240,173,212,162,175,156,164,114,192,183,253,147,38,54,63,247,204,52,165,229,241,113,216,49,21,4,199,35,195,24,150,5,154,7,18,128,226,235,39,178,117,9,131,44,26,27,110,90,160,82,59,214,179,41,227,47,132,83,209,0,237,32,252,177,91,106,203,190,57,74,76,88,207,208,239,170,251,67,77,51,133,69,249,2,127,80,60,159,168,81,163,64,143,146,157,56,245,188,182,218,33,16,255,243,210,205,12,19,236,95,151,68,23,196,167,126,61,100,93,25,115,96,129,79,220,34,42,144,136,70,238,184,20,222,94,11,219,224,50,58,10,73,6,36,92,194,211,172,98,145,149,228,121,231,200,55,109,141,213,78,169,108,86,244,234,101,122,174,8,186,120,37,46,28,166,180,198,232,221,116,31,75,189,139,138,112,62,181,102,72,3,246,14,97,53,87,185,134,193,29,158,225,248,152,17,105,217,142,148,155,30,135,233,206,85,40,223,140,161,137,13,191,230,66,104,65,153,45,15,176,84,187,22],GA=[82,9,106,213,48,54,165,56,191,64,163,158,129,243,215,251,124,227,57,130,155,47,255,135,52,142,67,68,196,222,233,203,84,123,148,50,166,194,35,61,238,76,149,11,66,250,195,78,8,46,161,102,40,217,36,178,118,91,162,73,109,139,209,37,114,248,246,100,134,104,152,22,212,164,92,204,93,101,182,146,108,112,72,80,253,237,185,218,94,21,70,87,167,141,157,132,144,216,171,0,140,188,211,10,247,228,88,5,184,179,69,6,208,44,30,143,202,63,15,2,193,175,189,3,1,19,138,107,58,145,17,65,79,103,220,234,151,242,207,206,240,180,230,115,150,172,116,34,231,173,53,133,226,249,55,232,28,117,223,110,71,241,26,113,29,41,197,137,111,183,98,14,170,24,190,27,252,86,62,75,198,210,121,32,154,219,192,254,120,205,90,244,31,221,168,51,136,7,199,49,177,18,16,89,39,128,236,95,96,81,127,169,25,181,74,13,45,229,122,159,147,201,156,239,160,224,59,77,174,42,245,176,200,235,187,60,131,83,153,97,23,43,4,126,186,119,214,38,225,105,20,99,85,33,12,125],Ut=[3328402341,4168907908,4000806809,4135287693,4294111757,3597364157,3731845041,2445657428,1613770832,33620227,3462883241,1445669757,3892248089,3050821474,1303096294,3967186586,2412431941,528646813,2311702848,4202528135,4026202645,2992200171,2387036105,4226871307,1101901292,3017069671,1604494077,1169141738,597466303,1403299063,3832705686,2613100635,1974974402,3791519004,1033081774,1277568618,1815492186,2118074177,4126668546,2211236943,1748251740,1369810420,3521504564,4193382664,3799085459,2883115123,1647391059,706024767,134480908,2512897874,1176707941,2646852446,806885416,932615841,168101135,798661301,235341577,605164086,461406363,3756188221,3454790438,1311188841,2142417613,3933566367,302582043,495158174,1479289972,874125870,907746093,3698224818,3025820398,1537253627,2756858614,1983593293,3084310113,2108928974,1378429307,3722699582,1580150641,327451799,2790478837,3117535592,0,3253595436,1075847264,3825007647,2041688520,3059440621,3563743934,2378943302,1740553945,1916352843,2487896798,2555137236,2958579944,2244988746,3151024235,3320835882,1336584933,3992714006,2252555205,2588757463,1714631509,293963156,2319795663,3925473552,67240454,4269768577,2689618160,2017213508,631218106,1269344483,2723238387,1571005438,2151694528,93294474,1066570413,563977660,1882732616,4059428100,1673313503,2008463041,2950355573,1109467491,537923632,3858759450,4260623118,3218264685,2177748300,403442708,638784309,3287084079,3193921505,899127202,2286175436,773265209,2479146071,1437050866,4236148354,2050833735,3362022572,3126681063,840505643,3866325909,3227541664,427917720,2655997905,2749160575,1143087718,1412049534,999329963,193497219,2353415882,3354324521,1807268051,672404540,2816401017,3160301282,369822493,2916866934,3688947771,1681011286,1949973070,336202270,2454276571,201721354,1210328172,3093060836,2680341085,3184776046,1135389935,3294782118,965841320,831886756,3554993207,4068047243,3588745010,2345191491,1849112409,3664604599,26054028,2983581028,2622377682,1235855840,3630984372,2891339514,4092916743,3488279077,3395642799,4101667470,1202630377,268961816,1874508501,4034427016,1243948399,1546530418,941366308,1470539505,1941222599,2546386513,3421038627,2715671932,3899946140,1042226977,2521517021,1639824860,227249030,260737669,3765465232,2084453954,1907733956,3429263018,2420656344,100860677,4160157185,470683154,3261161891,1781871967,2924959737,1773779408,394692241,2579611992,974986535,664706745,3655459128,3958962195,731420851,571543859,3530123707,2849626480,126783113,865375399,765172662,1008606754,361203602,3387549984,2278477385,2857719295,1344809080,2782912378,59542671,1503764984,160008576,437062935,1707065306,3622233649,2218934982,3496503480,2185314755,697932208,1512910199,504303377,2075177163,2824099068,1841019862,739644986],Qt=[2781242211,2230877308,2582542199,2381740923,234877682,3184946027,2984144751,1418839493,1348481072,50462977,2848876391,2102799147,434634494,1656084439,3863849899,2599188086,1167051466,2636087938,1082771913,2281340285,368048890,3954334041,3381544775,201060592,3963727277,1739838676,4250903202,3930435503,3206782108,4149453988,2531553906,1536934080,3262494647,484572669,2923271059,1783375398,1517041206,1098792767,49674231,1334037708,1550332980,4098991525,886171109,150598129,2481090929,1940642008,1398944049,1059722517,201851908,1385547719,1699095331,1587397571,674240536,2704774806,252314885,3039795866,151914247,908333586,2602270848,1038082786,651029483,1766729511,3447698098,2682942837,454166793,2652734339,1951935532,775166490,758520603,3000790638,4004797018,4217086112,4137964114,1299594043,1639438038,3464344499,2068982057,1054729187,1901997871,2534638724,4121318227,1757008337,0,750906861,1614815264,535035132,3363418545,3988151131,3201591914,1183697867,3647454910,1265776953,3734260298,3566750796,3903871064,1250283471,1807470800,717615087,3847203498,384695291,3313910595,3617213773,1432761139,2484176261,3481945413,283769337,100925954,2180939647,4037038160,1148730428,3123027871,3813386408,4087501137,4267549603,3229630528,2315620239,2906624658,3156319645,1215313976,82966005,3747855548,3245848246,1974459098,1665278241,807407632,451280895,251524083,1841287890,1283575245,337120268,891687699,801369324,3787349855,2721421207,3431482436,959321879,1469301956,4065699751,2197585534,1199193405,2898814052,3887750493,724703513,2514908019,2696962144,2551808385,3516813135,2141445340,1715741218,2119445034,2872807568,2198571144,3398190662,700968686,3547052216,1009259540,2041044702,3803995742,487983883,1991105499,1004265696,1449407026,1316239930,504629770,3683797321,168560134,1816667172,3837287516,1570751170,1857934291,4014189740,2797888098,2822345105,2754712981,936633572,2347923833,852879335,1133234376,1500395319,3084545389,2348912013,1689376213,3533459022,3762923945,3034082412,4205598294,133428468,634383082,2949277029,2398386810,3913789102,403703816,3580869306,2297460856,1867130149,1918643758,607656988,4049053350,3346248884,1368901318,600565992,2090982877,2632479860,557719327,3717614411,3697393085,2249034635,2232388234,2430627952,1115438654,3295786421,2865522278,3633334344,84280067,33027830,303828494,2747425121,1600795957,4188952407,3496589753,2434238086,1486471617,658119965,3106381470,953803233,334231800,3005978776,857870609,3151128937,1890179545,2298973838,2805175444,3056442267,574365214,2450884487,550103529,1233637070,4289353045,2018519080,2057691103,2399374476,4166623649,2148108681,387583245,3664101311,836232934,3330556482,3100665960,3280093505,2955516313,2002398509,287182607,3413881008,4238890068,3597515707,975967766],Nt=[1671808611,2089089148,2006576759,2072901243,4061003762,1807603307,1873927791,3310653893,810573872,16974337,1739181671,729634347,4263110654,3613570519,2883997099,1989864566,3393556426,2191335298,3376449993,2106063485,4195741690,1508618841,1204391495,4027317232,2917941677,3563566036,2734514082,2951366063,2629772188,2767672228,1922491506,3227229120,3082974647,4246528509,2477669779,644500518,911895606,1061256767,4144166391,3427763148,878471220,2784252325,3845444069,4043897329,1905517169,3631459288,827548209,356461077,67897348,3344078279,593839651,3277757891,405286936,2527147926,84871685,2595565466,118033927,305538066,2157648768,3795705826,3945188843,661212711,2999812018,1973414517,152769033,2208177539,745822252,439235610,455947803,1857215598,1525593178,2700827552,1391895634,994932283,3596728278,3016654259,695947817,3812548067,795958831,2224493444,1408607827,3513301457,0,3979133421,543178784,4229948412,2982705585,1542305371,1790891114,3410398667,3201918910,961245753,1256100938,1289001036,1491644504,3477767631,3496721360,4012557807,2867154858,4212583931,1137018435,1305975373,861234739,2241073541,1171229253,4178635257,33948674,2139225727,1357946960,1011120188,2679776671,2833468328,1374921297,2751356323,1086357568,2408187279,2460827538,2646352285,944271416,4110742005,3168756668,3066132406,3665145818,560153121,271589392,4279952895,4077846003,3530407890,3444343245,202643468,322250259,3962553324,1608629855,2543990167,1154254916,389623319,3294073796,2817676711,2122513534,1028094525,1689045092,1575467613,422261273,1939203699,1621147744,2174228865,1339137615,3699352540,577127458,712922154,2427141008,2290289544,1187679302,3995715566,3100863416,339486740,3732514782,1591917662,186455563,3681988059,3762019296,844522546,978220090,169743370,1239126601,101321734,611076132,1558493276,3260915650,3547250131,2901361580,1655096418,2443721105,2510565781,3828863972,2039214713,3878868455,3359869896,928607799,1840765549,2374762893,3580146133,1322425422,2850048425,1823791212,1459268694,4094161908,3928346602,1706019429,2056189050,2934523822,135794696,3134549946,2022240376,628050469,779246638,472135708,2800834470,3032970164,3327236038,3894660072,3715932637,1956440180,522272287,1272813131,3185336765,2340818315,2323976074,1888542832,1044544574,3049550261,1722469478,1222152264,50660867,4127324150,236067854,1638122081,895445557,1475980887,3117443513,2257655686,3243809217,489110045,2662934430,3778599393,4162055160,2561878936,288563729,1773916777,3648039385,2391345038,2493985684,2612407707,505560094,2274497927,3911240169,3460925390,1442818645,678973480,3749357023,2358182796,2717407649,2306869641,219617805,3218761151,3862026214,1120306242,1756942440,1103331905,2578459033,762796589,252780047,2966125488,1425844308,3151392187,372911126],qt=[1667474886,2088535288,2004326894,2071694838,4075949567,1802223062,1869591006,3318043793,808472672,16843522,1734846926,724270422,4278065639,3621216949,2880169549,1987484396,3402253711,2189597983,3385409673,2105378810,4210693615,1499065266,1195886990,4042263547,2913856577,3570689971,2728590687,2947541573,2627518243,2762274643,1920112356,3233831835,3082273397,4261223649,2475929149,640051788,909531756,1061110142,4160160501,3435941763,875846760,2779116625,3857003729,4059105529,1903268834,3638064043,825316194,353713962,67374088,3351728789,589522246,3284360861,404236336,2526454071,84217610,2593830191,117901582,303183396,2155911963,3806477791,3958056653,656894286,2998062463,1970642922,151591698,2206440989,741110872,437923380,454765878,1852748508,1515908788,2694904667,1381168804,993742198,3604373943,3014905469,690584402,3823320797,791638366,2223281939,1398011302,3520161977,0,3991743681,538992704,4244381667,2981218425,1532751286,1785380564,3419096717,3200178535,960056178,1246420628,1280103576,1482221744,3486468741,3503319995,4025428677,2863326543,4227536621,1128514950,1296947098,859002214,2240123921,1162203018,4193849577,33687044,2139062782,1347481760,1010582648,2678045221,2829640523,1364325282,2745433693,1077985408,2408548869,2459086143,2644360225,943212656,4126475505,3166494563,3065430391,3671750063,555836226,269496352,4294908645,4092792573,3537006015,3452783745,202118168,320025894,3974901699,1600119230,2543297077,1145359496,387397934,3301201811,2812801621,2122220284,1027426170,1684319432,1566435258,421079858,1936954854,1616945344,2172753945,1330631070,3705438115,572679748,707427924,2425400123,2290647819,1179044492,4008585671,3099120491,336870440,3739122087,1583276732,185277718,3688593069,3772791771,842159716,976899700,168435220,1229577106,101059084,606366792,1549591736,3267517855,3553849021,2897014595,1650632388,2442242105,2509612081,3840161747,2038008818,3890688725,3368567691,926374254,1835907034,2374863873,3587531953,1313788572,2846482505,1819063512,1448540844,4109633523,3941213647,1701162954,2054852340,2930698567,134748176,3132806511,2021165296,623210314,774795868,471606328,2795958615,3031746419,3334885783,3907527627,3722280097,1953799400,522133822,1263263126,3183336545,2341176845,2324333839,1886425312,1044267644,3048588401,1718004428,1212733584,50529542,4143317495,235803164,1633788866,892690282,1465383342,3115962473,2256965911,3250673817,488449850,2661202215,3789633753,4177007595,2560144171,286339874,1768537042,3654906025,2391705863,2492770099,2610673197,505291324,2273808917,3924369609,3469625735,1431699370,673740880,3755965093,2358021891,2711746649,2307489801,218961690,3217021541,3873845719,1111672452,1751693520,1094828930,2576986153,757954394,252645662,2964376443,1414855848,3149649517,370555436],Ht=[1374988112,2118214995,437757123,975658646,1001089995,530400753,2902087851,1273168787,540080725,2910219766,2295101073,4110568485,1340463100,3307916247,641025152,3043140495,3736164937,632953703,1172967064,1576976609,3274667266,2169303058,2370213795,1809054150,59727847,361929877,3211623147,2505202138,3569255213,1484005843,1239443753,2395588676,1975683434,4102977912,2572697195,666464733,3202437046,4035489047,3374361702,2110667444,1675577880,3843699074,2538681184,1649639237,2976151520,3144396420,4269907996,4178062228,1883793496,2403728665,2497604743,1383856311,2876494627,1917518562,3810496343,1716890410,3001755655,800440835,2261089178,3543599269,807962610,599762354,33778362,3977675356,2328828971,2809771154,4077384432,1315562145,1708848333,101039829,3509871135,3299278474,875451293,2733856160,92987698,2767645557,193195065,1080094634,1584504582,3178106961,1042385657,2531067453,3711829422,1306967366,2438237621,1908694277,67556463,1615861247,429456164,3602770327,2302690252,1742315127,2968011453,126454664,3877198648,2043211483,2709260871,2084704233,4169408201,0,159417987,841739592,504459436,1817866830,4245618683,260388950,1034867998,908933415,168810852,1750902305,2606453969,607530554,202008497,2472011535,3035535058,463180190,2160117071,1641816226,1517767529,470948374,3801332234,3231722213,1008918595,303765277,235474187,4069246893,766945465,337553864,1475418501,2943682380,4003061179,2743034109,4144047775,1551037884,1147550661,1543208500,2336434550,3408119516,3069049960,3102011747,3610369226,1113818384,328671808,2227573024,2236228733,3535486456,2935566865,3341394285,496906059,3702665459,226906860,2009195472,733156972,2842737049,294930682,1206477858,2835123396,2700099354,1451044056,573804783,2269728455,3644379585,2362090238,2564033334,2801107407,2776292904,3669462566,1068351396,742039012,1350078989,1784663195,1417561698,4136440770,2430122216,775550814,2193862645,2673705150,1775276924,1876241833,3475313331,3366754619,270040487,3902563182,3678124923,3441850377,1851332852,3969562369,2203032232,3868552805,2868897406,566021896,4011190502,3135740889,1248802510,3936291284,699432150,832877231,708780849,3332740144,899835584,1951317047,4236429990,3767586992,866637845,4043610186,1106041591,2144161806,395441711,1984812685,1139781709,3433712980,3835036895,2664543715,1282050075,3240894392,1181045119,2640243204,25965917,4203181171,4211818798,3009879386,2463879762,3910161971,1842759443,2597806476,933301370,1509430414,3943906441,3467192302,3076639029,3776767469,2051518780,2631065433,1441952575,404016761,1942435775,1408749034,1610459739,3745345300,2017778566,3400528769,3110650942,941896748,3265478751,371049330,3168937228,675039627,4279080257,967311729,135050206,3635733660,1683407248,2076935265,3576870512,1215061108,3501741890],At=[1347548327,1400783205,3273267108,2520393566,3409685355,4045380933,2880240216,2471224067,1428173050,4138563181,2441661558,636813900,4233094615,3620022987,2149987652,2411029155,1239331162,1730525723,2554718734,3781033664,46346101,310463728,2743944855,3328955385,3875770207,2501218972,3955191162,3667219033,768917123,3545789473,692707433,1150208456,1786102409,2029293177,1805211710,3710368113,3065962831,401639597,1724457132,3028143674,409198410,2196052529,1620529459,1164071807,3769721975,2226875310,486441376,2499348523,1483753576,428819965,2274680428,3075636216,598438867,3799141122,1474502543,711349675,129166120,53458370,2592523643,2782082824,4063242375,2988687269,3120694122,1559041666,730517276,2460449204,4042459122,2706270690,3446004468,3573941694,533804130,2328143614,2637442643,2695033685,839224033,1973745387,957055980,2856345839,106852767,1371368976,4181598602,1033297158,2933734917,1179510461,3046200461,91341917,1862534868,4284502037,605657339,2547432937,3431546947,2003294622,3182487618,2282195339,954669403,3682191598,1201765386,3917234703,3388507166,0,2198438022,1211247597,2887651696,1315723890,4227665663,1443857720,507358933,657861945,1678381017,560487590,3516619604,975451694,2970356327,261314535,3535072918,2652609425,1333838021,2724322336,1767536459,370938394,182621114,3854606378,1128014560,487725847,185469197,2918353863,3106780840,3356761769,2237133081,1286567175,3152976349,4255350624,2683765030,3160175349,3309594171,878443390,1988838185,3704300486,1756818940,1673061617,3403100636,272786309,1075025698,545572369,2105887268,4174560061,296679730,1841768865,1260232239,4091327024,3960309330,3497509347,1814803222,2578018489,4195456072,575138148,3299409036,446754879,3629546796,4011996048,3347532110,3252238545,4270639778,915985419,3483825537,681933534,651868046,2755636671,3828103837,223377554,2607439820,1649704518,3270937875,3901806776,1580087799,4118987695,3198115200,2087309459,2842678573,3016697106,1003007129,2802849917,1860738147,2077965243,164439672,4100872472,32283319,2827177882,1709610350,2125135846,136428751,3874428392,3652904859,3460984630,3572145929,3593056380,2939266226,824852259,818324884,3224740454,930369212,2801566410,2967507152,355706840,1257309336,4148292826,243256656,790073846,2373340630,1296297904,1422699085,3756299780,3818836405,457992840,3099667487,2135319889,77422314,1560382517,1945798516,788204353,1521706781,1385356242,870912086,325965383,2358957921,2050466060,2388260884,2313884476,4006521127,901210569,3990953189,1014646705,1503449823,1062597235,2031621326,3212035895,3931371469,1533017514,350174575,2256028891,2177544179,1052338372,741876788,1606591296,1914052035,213705253,2334669897,1107234197,1899603969,3725069491,2631447780,2422494913,1635502980,1893020342,1950903388,1120974935],zt=[2807058932,1699970625,2764249623,1586903591,1808481195,1173430173,1487645946,59984867,4199882800,1844882806,1989249228,1277555970,3623636965,3419915562,1149249077,2744104290,1514790577,459744698,244860394,3235995134,1963115311,4027744588,2544078150,4190530515,1608975247,2627016082,2062270317,1507497298,2200818878,567498868,1764313568,3359936201,2305455554,2037970062,1047239000,1910319033,1337376481,2904027272,2892417312,984907214,1243112415,830661914,861968209,2135253587,2011214180,2927934315,2686254721,731183368,1750626376,4246310725,1820824798,4172763771,3542330227,48394827,2404901663,2871682645,671593195,3254988725,2073724613,145085239,2280796200,2779915199,1790575107,2187128086,472615631,3029510009,4075877127,3802222185,4107101658,3201631749,1646252340,4270507174,1402811438,1436590835,3778151818,3950355702,3963161475,4020912224,2667994737,273792366,2331590177,104699613,95345982,3175501286,2377486676,1560637892,3564045318,369057872,4213447064,3919042237,1137477952,2658625497,1119727848,2340947849,1530455833,4007360968,172466556,266959938,516552836,0,2256734592,3980931627,1890328081,1917742170,4294704398,945164165,3575528878,958871085,3647212047,2787207260,1423022939,775562294,1739656202,3876557655,2530391278,2443058075,3310321856,547512796,1265195639,437656594,3121275539,719700128,3762502690,387781147,218828297,3350065803,2830708150,2848461854,428169201,122466165,3720081049,1627235199,648017665,4122762354,1002783846,2117360635,695634755,3336358691,4234721005,4049844452,3704280881,2232435299,574624663,287343814,612205898,1039717051,840019705,2708326185,793451934,821288114,1391201670,3822090177,376187827,3113855344,1224348052,1679968233,2361698556,1058709744,752375421,2431590963,1321699145,3519142200,2734591178,188127444,2177869557,3727205754,2384911031,3215212461,2648976442,2450346104,3432737375,1180849278,331544205,3102249176,4150144569,2952102595,2159976285,2474404304,766078933,313773861,2570832044,2108100632,1668212892,3145456443,2013908262,418672217,3070356634,2594734927,1852171925,3867060991,3473416636,3907448597,2614737639,919489135,164948639,2094410160,2997825956,590424639,2486224549,1723872674,3157750862,3399941250,3501252752,3625268135,2555048196,3673637356,1343127501,4130281361,3599595085,2957853679,1297403050,81781910,3051593425,2283490410,532201772,1367295589,3926170974,895287692,1953757831,1093597963,492483431,3528626907,1446242576,1192455638,1636604631,209336225,344873464,1015671571,669961897,3375740769,3857572124,2973530695,3747192018,1933530610,3464042516,935293895,3454686199,2858115069,1863638845,3683022916,4085369519,3292445032,875313188,1080017571,3279033885,621591778,1233856572,2504130317,24197544,3017672716,3835484340,3247465558,2220981195,3060847922,1551124588,1463996600],It=[4104605777,1097159550,396673818,660510266,2875968315,2638606623,4200115116,3808662347,821712160,1986918061,3430322568,38544885,3856137295,718002117,893681702,1654886325,2975484382,3122358053,3926825029,4274053469,796197571,1290801793,1184342925,3556361835,2405426947,2459735317,1836772287,1381620373,3196267988,1948373848,3764988233,3385345166,3263785589,2390325492,1480485785,3111247143,3780097726,2293045232,548169417,3459953789,3746175075,439452389,1362321559,1400849762,1685577905,1806599355,2174754046,137073913,1214797936,1174215055,3731654548,2079897426,1943217067,1258480242,529487843,1437280870,3945269170,3049390895,3313212038,923313619,679998000,3215307299,57326082,377642221,3474729866,2041877159,133361907,1776460110,3673476453,96392454,878845905,2801699524,777231668,4082475170,2330014213,4142626212,2213296395,1626319424,1906247262,1846563261,562755902,3708173718,1040559837,3871163981,1418573201,3294430577,114585348,1343618912,2566595609,3186202582,1078185097,3651041127,3896688048,2307622919,425408743,3371096953,2081048481,1108339068,2216610296,0,2156299017,736970802,292596766,1517440620,251657213,2235061775,2933202493,758720310,265905162,1554391400,1532285339,908999204,174567692,1474760595,4002861748,2610011675,3234156416,3693126241,2001430874,303699484,2478443234,2687165888,585122620,454499602,151849742,2345119218,3064510765,514443284,4044981591,1963412655,2581445614,2137062819,19308535,1928707164,1715193156,4219352155,1126790795,600235211,3992742070,3841024952,836553431,1669664834,2535604243,3323011204,1243905413,3141400786,4180808110,698445255,2653899549,2989552604,2253581325,3252932727,3004591147,1891211689,2487810577,3915653703,4237083816,4030667424,2100090966,865136418,1229899655,953270745,3399679628,3557504664,4118925222,2061379749,3079546586,2915017791,983426092,2022837584,1607244650,2118541908,2366882550,3635996816,972512814,3283088770,1568718495,3499326569,3576539503,621982671,2895723464,410887952,2623762152,1002142683,645401037,1494807662,2595684844,1335535747,2507040230,4293295786,3167684641,367585007,3885750714,1865862730,2668221674,2960971305,2763173681,1059270954,2777952454,2724642869,1320957812,2194319100,2429595872,2815956275,77089521,3973773121,3444575871,2448830231,1305906550,4021308739,2857194700,2516901860,3518358430,1787304780,740276417,1699839814,1592394909,2352307457,2272556026,188821243,1729977011,3687994002,274084841,3594982253,3613494426,2701949495,4162096729,322734571,2837966542,1640576439,484830689,1202797690,3537852828,4067639125,349075736,3342319475,4157467219,4255800159,1030690015,1155237496,2951971274,1757691577,607398968,2738905026,499347990,3794078908,1011452712,227885567,2818666809,213114376,3034881240,1455525988,3414450555,850817237,1817998408,3092726480],wt=[0,235474187,470948374,303765277,941896748,908933415,607530554,708780849,1883793496,2118214995,1817866830,1649639237,1215061108,1181045119,1417561698,1517767529,3767586992,4003061179,4236429990,4069246893,3635733660,3602770327,3299278474,3400528769,2430122216,2664543715,2362090238,2193862645,2835123396,2801107407,3035535058,3135740889,3678124923,3576870512,3341394285,3374361702,3810496343,3977675356,4279080257,4043610186,2876494627,2776292904,3076639029,3110650942,2472011535,2640243204,2403728665,2169303058,1001089995,899835584,666464733,699432150,59727847,226906860,530400753,294930682,1273168787,1172967064,1475418501,1509430414,1942435775,2110667444,1876241833,1641816226,2910219766,2743034109,2976151520,3211623147,2505202138,2606453969,2302690252,2269728455,3711829422,3543599269,3240894392,3475313331,3843699074,3943906441,4178062228,4144047775,1306967366,1139781709,1374988112,1610459739,1975683434,2076935265,1775276924,1742315127,1034867998,866637845,566021896,800440835,92987698,193195065,429456164,395441711,1984812685,2017778566,1784663195,1683407248,1315562145,1080094634,1383856311,1551037884,101039829,135050206,437757123,337553864,1042385657,807962610,573804783,742039012,2531067453,2564033334,2328828971,2227573024,2935566865,2700099354,3001755655,3168937228,3868552805,3902563182,4203181171,4102977912,3736164937,3501741890,3265478751,3433712980,1106041591,1340463100,1576976609,1408749034,2043211483,2009195472,1708848333,1809054150,832877231,1068351396,766945465,599762354,159417987,126454664,361929877,463180190,2709260871,2943682380,3178106961,3009879386,2572697195,2538681184,2236228733,2336434550,3509871135,3745345300,3441850377,3274667266,3910161971,3877198648,4110568485,4211818798,2597806476,2497604743,2261089178,2295101073,2733856160,2902087851,3202437046,2968011453,3936291284,3835036895,4136440770,4169408201,3535486456,3702665459,3467192302,3231722213,2051518780,1951317047,1716890410,1750902305,1113818384,1282050075,1584504582,1350078989,168810852,67556463,371049330,404016761,841739592,1008918595,775550814,540080725,3969562369,3801332234,4035489047,4269907996,3569255213,3669462566,3366754619,3332740144,2631065433,2463879762,2160117071,2395588676,2767645557,2868897406,3102011747,3069049960,202008497,33778362,270040487,504459436,875451293,975658646,675039627,641025152,2084704233,1917518562,1615861247,1851332852,1147550661,1248802510,1484005843,1451044056,933301370,967311729,733156972,632953703,260388950,25965917,328671808,496906059,1206477858,1239443753,1543208500,1441952575,2144161806,1908694277,1675577880,1842759443,3610369226,3644379585,3408119516,3307916247,4011190502,3776767469,4077384432,4245618683,2809771154,2842737049,3144396420,3043140495,2673705150,2438237621,2203032232,2370213795],jt=[0,185469197,370938394,487725847,741876788,657861945,975451694,824852259,1483753576,1400783205,1315723890,1164071807,1950903388,2135319889,1649704518,1767536459,2967507152,3152976349,2801566410,2918353863,2631447780,2547432937,2328143614,2177544179,3901806776,3818836405,4270639778,4118987695,3299409036,3483825537,3535072918,3652904859,2077965243,1893020342,1841768865,1724457132,1474502543,1559041666,1107234197,1257309336,598438867,681933534,901210569,1052338372,261314535,77422314,428819965,310463728,3409685355,3224740454,3710368113,3593056380,3875770207,3960309330,4045380933,4195456072,2471224067,2554718734,2237133081,2388260884,3212035895,3028143674,2842678573,2724322336,4138563181,4255350624,3769721975,3955191162,3667219033,3516619604,3431546947,3347532110,2933734917,2782082824,3099667487,3016697106,2196052529,2313884476,2499348523,2683765030,1179510461,1296297904,1347548327,1533017514,1786102409,1635502980,2087309459,2003294622,507358933,355706840,136428751,53458370,839224033,957055980,605657339,790073846,2373340630,2256028891,2607439820,2422494913,2706270690,2856345839,3075636216,3160175349,3573941694,3725069491,3273267108,3356761769,4181598602,4063242375,4011996048,3828103837,1033297158,915985419,730517276,545572369,296679730,446754879,129166120,213705253,1709610350,1860738147,1945798516,2029293177,1239331162,1120974935,1606591296,1422699085,4148292826,4233094615,3781033664,3931371469,3682191598,3497509347,3446004468,3328955385,2939266226,2755636671,3106780840,2988687269,2198438022,2282195339,2501218972,2652609425,1201765386,1286567175,1371368976,1521706781,1805211710,1620529459,2105887268,1988838185,533804130,350174575,164439672,46346101,870912086,954669403,636813900,788204353,2358957921,2274680428,2592523643,2441661558,2695033685,2880240216,3065962831,3182487618,3572145929,3756299780,3270937875,3388507166,4174560061,4091327024,4006521127,3854606378,1014646705,930369212,711349675,560487590,272786309,457992840,106852767,223377554,1678381017,1862534868,1914052035,2031621326,1211247597,1128014560,1580087799,1428173050,32283319,182621114,401639597,486441376,768917123,651868046,1003007129,818324884,1503449823,1385356242,1333838021,1150208456,1973745387,2125135846,1673061617,1756818940,2970356327,3120694122,2802849917,2887651696,2637442643,2520393566,2334669897,2149987652,3917234703,3799141122,4284502037,4100872472,3309594171,3460984630,3545789473,3629546796,2050466060,1899603969,1814803222,1730525723,1443857720,1560382517,1075025698,1260232239,575138148,692707433,878443390,1062597235,243256656,91341917,409198410,325965383,3403100636,3252238545,3704300486,3620022987,3874428392,3990953189,4042459122,4227665663,2460449204,2578018489,2226875310,2411029155,3198115200,3046200461,2827177882,2743944855],Kt=[0,218828297,437656594,387781147,875313188,958871085,775562294,590424639,1750626376,1699970625,1917742170,2135253587,1551124588,1367295589,1180849278,1265195639,3501252752,3720081049,3399941250,3350065803,3835484340,3919042237,4270507174,4085369519,3102249176,3051593425,2734591178,2952102595,2361698556,2177869557,2530391278,2614737639,3145456443,3060847922,2708326185,2892417312,2404901663,2187128086,2504130317,2555048196,3542330227,3727205754,3375740769,3292445032,3876557655,3926170974,4246310725,4027744588,1808481195,1723872674,1910319033,2094410160,1608975247,1391201670,1173430173,1224348052,59984867,244860394,428169201,344873464,935293895,984907214,766078933,547512796,1844882806,1627235199,2011214180,2062270317,1507497298,1423022939,1137477952,1321699145,95345982,145085239,532201772,313773861,830661914,1015671571,731183368,648017665,3175501286,2957853679,2807058932,2858115069,2305455554,2220981195,2474404304,2658625497,3575528878,3625268135,3473416636,3254988725,3778151818,3963161475,4213447064,4130281361,3599595085,3683022916,3432737375,3247465558,3802222185,4020912224,4172763771,4122762354,3201631749,3017672716,2764249623,2848461854,2331590177,2280796200,2431590963,2648976442,104699613,188127444,472615631,287343814,840019705,1058709744,671593195,621591778,1852171925,1668212892,1953757831,2037970062,1514790577,1463996600,1080017571,1297403050,3673637356,3623636965,3235995134,3454686199,4007360968,3822090177,4107101658,4190530515,2997825956,3215212461,2830708150,2779915199,2256734592,2340947849,2627016082,2443058075,172466556,122466165,273792366,492483431,1047239000,861968209,612205898,695634755,1646252340,1863638845,2013908262,1963115311,1446242576,1530455833,1277555970,1093597963,1636604631,1820824798,2073724613,1989249228,1436590835,1487645946,1337376481,1119727848,164948639,81781910,331544205,516552836,1039717051,821288114,669961897,719700128,2973530695,3157750862,2871682645,2787207260,2232435299,2283490410,2667994737,2450346104,3647212047,3564045318,3279033885,3464042516,3980931627,3762502690,4150144569,4199882800,3070356634,3121275539,2904027272,2686254721,2200818878,2384911031,2570832044,2486224549,3747192018,3528626907,3310321856,3359936201,3950355702,3867060991,4049844452,4234721005,1739656202,1790575107,2108100632,1890328081,1402811438,1586903591,1233856572,1149249077,266959938,48394827,369057872,418672217,1002783846,919489135,567498868,752375421,209336225,24197544,376187827,459744698,945164165,895287692,574624663,793451934,1679968233,1764313568,2117360635,1933530610,1343127501,1560637892,1243112415,1192455638,3704280881,3519142200,3336358691,3419915562,3907448597,3857572124,4075877127,4294704398,3029510009,3113855344,2927934315,2744104290,2159976285,2377486676,2594734927,2544078150],Ot=[0,151849742,303699484,454499602,607398968,758720310,908999204,1059270954,1214797936,1097159550,1517440620,1400849762,1817998408,1699839814,2118541908,2001430874,2429595872,2581445614,2194319100,2345119218,3034881240,3186202582,2801699524,2951971274,3635996816,3518358430,3399679628,3283088770,4237083816,4118925222,4002861748,3885750714,1002142683,850817237,698445255,548169417,529487843,377642221,227885567,77089521,1943217067,2061379749,1640576439,1757691577,1474760595,1592394909,1174215055,1290801793,2875968315,2724642869,3111247143,2960971305,2405426947,2253581325,2638606623,2487810577,3808662347,3926825029,4044981591,4162096729,3342319475,3459953789,3576539503,3693126241,1986918061,2137062819,1685577905,1836772287,1381620373,1532285339,1078185097,1229899655,1040559837,923313619,740276417,621982671,439452389,322734571,137073913,19308535,3871163981,4021308739,4104605777,4255800159,3263785589,3414450555,3499326569,3651041127,2933202493,2815956275,3167684641,3049390895,2330014213,2213296395,2566595609,2448830231,1305906550,1155237496,1607244650,1455525988,1776460110,1626319424,2079897426,1928707164,96392454,213114376,396673818,514443284,562755902,679998000,865136418,983426092,3708173718,3557504664,3474729866,3323011204,4180808110,4030667424,3945269170,3794078908,2507040230,2623762152,2272556026,2390325492,2975484382,3092726480,2738905026,2857194700,3973773121,3856137295,4274053469,4157467219,3371096953,3252932727,3673476453,3556361835,2763173681,2915017791,3064510765,3215307299,2156299017,2307622919,2459735317,2610011675,2081048481,1963412655,1846563261,1729977011,1480485785,1362321559,1243905413,1126790795,878845905,1030690015,645401037,796197571,274084841,425408743,38544885,188821243,3613494426,3731654548,3313212038,3430322568,4082475170,4200115116,3780097726,3896688048,2668221674,2516901860,2366882550,2216610296,3141400786,2989552604,2837966542,2687165888,1202797690,1320957812,1437280870,1554391400,1669664834,1787304780,1906247262,2022837584,265905162,114585348,499347990,349075736,736970802,585122620,972512814,821712160,2595684844,2478443234,2293045232,2174754046,3196267988,3079546586,2895723464,2777952454,3537852828,3687994002,3234156416,3385345166,4142626212,4293295786,3841024952,3992742070,174567692,57326082,410887952,292596766,777231668,660510266,1011452712,893681702,1108339068,1258480242,1343618912,1494807662,1715193156,1865862730,1948373848,2100090966,2701949495,2818666809,3004591147,3122358053,2235061775,2352307457,2535604243,2653899549,3915653703,3764988233,4219352155,4067639125,3444575871,3294430577,3746175075,3594982253,836553431,953270745,600235211,718002117,367585007,484830689,133361907,251657213,2041877159,1891211689,1806599355,1654886325,1568718495,1418573201,1335535747,1184342925];function WD(W){let G=[];for(let X=0;X<W.length;X+=4)G.push(W[X]<<24|W[X+1]<<16|W[X+2]<<8|W[X+3]);return G}class YA{get key(){return Q9(this,XA,"f").slice()}constructor(W){if(XA.set(this,void 0),y5.set(this,void 0),a7.set(this,void 0),!(this instanceof YA))throw Error("AES must be instanitated with `new`");eO(this,XA,new Uint8Array(W),"f");let G=Zt[this.key.length];if(G==null)throw TypeError("invalid key size (must be 16, 24 or 32 bytes)");eO(this,a7,[],"f"),eO(this,y5,[],"f");for(let N=0;N<=G;N++)Q9(this,a7,"f").push([0,0,0,0]),Q9(this,y5,"f").push([0,0,0,0]);let X=(G+1)*4,Y=this.key.length/4,J=WD(this.key),Z;for(let N=0;N<Y;N++)Z=N>>2,Q9(this,a7,"f")[Z][N%4]=J[N],Q9(this,y5,"f")[G-Z][N%4]=J[N];let V=0,U=Y,Q;while(U<X){if(Q=J[Y-1],J[0]^=_5[Q>>16&255]<<24^_5[Q>>8&255]<<16^_5[Q&255]<<8^_5[Q>>24&255]^Vt[V]<<24,V+=1,Y!=8)for(let H=1;H<Y;H++)J[H]^=J[H-1];else{for(let H=1;H<Y/2;H++)J[H]^=J[H-1];Q=J[Y/2-1],J[Y/2]^=_5[Q&255]^_5[Q>>8&255]<<8^_5[Q>>16&255]<<16^_5[Q>>24&255]<<24;for(let H=Y/2+1;H<Y;H++)J[H]^=J[H-1]}let N=0,q,A;while(N<Y&&U<X)q=U>>2,A=U%4,Q9(this,a7,"f")[q][A]=J[N],Q9(this,y5,"f")[G-q][A]=J[N++],U++}for(let N=1;N<G;N++)for(let q=0;q<4;q++)Q=Q9(this,y5,"f")[N][q],Q9(this,y5,"f")[N][q]=wt[Q>>24&255]^jt[Q>>16&255]^Kt[Q>>8&255]^Ot[Q&255]}encrypt(W){if(W.length!=16)throw TypeError("invalid plaintext size (must be 16 bytes)");let G=Q9(this,a7,"f").length-1,X=[0,0,0,0],Y=WD(W);for(let V=0;V<4;V++)Y[V]^=Q9(this,a7,"f")[0][V];for(let V=1;V<G;V++){for(let U=0;U<4;U++)X[U]=Ut[Y[U]>>24&255]^Qt[Y[(U+1)%4]>>16&255]^Nt[Y[(U+2)%4]>>8&255]^qt[Y[(U+3)%4]&255]^Q9(this,a7,"f")[V][U];Y=X.slice()}let J=new Uint8Array(16),Z=0;for(let V=0;V<4;V++)Z=Q9(this,a7,"f")[G][V],J[4*V]=(_5[Y[V]>>24&255]^Z>>24)&255,J[4*V+1]=(_5[Y[(V+1)%4]>>16&255]^Z>>16)&255,J[4*V+2]=(_5[Y[(V+2)%4]>>8&255]^Z>>8)&255,J[4*V+3]=(_5[Y[(V+3)%4]&255]^Z)&255;return J}decrypt(W){if(W.length!=16)throw TypeError("invalid ciphertext size (must be 16 bytes)");let G=Q9(this,y5,"f").length-1,X=[0,0,0,0],Y=WD(W);for(let V=0;V<4;V++)Y[V]^=Q9(this,y5,"f")[0][V];for(let V=1;V<G;V++){for(let U=0;U<4;U++)X[U]=Ht[Y[U]>>24&255]^At[Y[(U+3)%4]>>16&255]^zt[Y[(U+2)%4]>>8&255]^It[Y[(U+1)%4]&255]^Q9(this,y5,"f")[V][U];Y=X.slice()}let J=new Uint8Array(16),Z=0;for(let V=0;V<4;V++)Z=Q9(this,y5,"f")[G][V],J[4*V]=(GA[Y[V]>>24&255]^Z>>24)&255,J[4*V+1]=(GA[Y[(V+3)%4]>>16&255]^Z>>16)&255,J[4*V+2]=(GA[Y[(V+2)%4]>>8&255]^Z>>8)&255,J[4*V+3]=(GA[Y[(V+1)%4]&255]^Z)&255;return J}}XA=new WeakMap,y5=new WeakMap,a7=new WeakMap;class EU{constructor(W,G,X){if(X&&!(this instanceof X))throw Error(`${W} must be instantiated with "new"`);Object.defineProperties(this,{aes:{enumerable:!0,value:new YA(G)},name:{enumerable:!0,value:W}})}}var JA=function(W,G,X,Y,J){if(Y==="m")throw TypeError("Private method is not writable");if(Y==="a"&&!J)throw TypeError("Private accessor was defined without a setter");if(typeof G==="function"?W!==G||!J:!G.has(W))throw TypeError("Cannot write private member to an object whose class did not declare it");return Y==="a"?J.call(W,X):J?J.value=X:G.set(W,X),X},ZJ=function(W,G,X,Y){if(X==="a"&&!Y)throw TypeError("Private accessor was defined without a getter");if(typeof G==="function"?W!==G||!Y:!G.has(W))throw TypeError("Cannot read private member from an object whose class did not declare it");return X==="m"?Y:X==="a"?Y.call(W):Y?Y.value:G.get(W)},$U,Y6;class FU extends EU{constructor(W,G){super("ECC",W,FU);if($U.set(this,void 0),Y6.set(this,void 0),G){if(G.length%16)throw TypeError("invalid iv size (must be 16 bytes)");JA(this,$U,new Uint8Array(G),"f")}else JA(this,$U,new Uint8Array(16),"f");JA(this,Y6,this.iv,"f")}get iv(){return new Uint8Array(ZJ(this,$U,"f"))}encrypt(W){if(W.length%16)throw TypeError("invalid plaintext size (must be multiple of 16 bytes)");let G=new Uint8Array(W.length);for(let X=0;X<W.length;X+=16){for(let Y=0;Y<16;Y++)ZJ(this,Y6,"f")[Y]^=W[X+Y];JA(this,Y6,this.aes.encrypt(ZJ(this,Y6,"f")),"f"),G.set(ZJ(this,Y6,"f"),X)}return G}decrypt(W){if(W.length%16)throw TypeError("invalid ciphertext size (must be multiple of 16 bytes)");let G=new Uint8Array(W.length);for(let X=0;X<W.length;X+=16){let Y=this.aes.decrypt(W.subarray(X,X+16));for(let J=0;J<16;J++)G[X+J]=Y[J]^ZJ(this,Y6,"f")[J],ZJ(this,Y6,"f")[J]=W[X+J]}return G}}$U=new WeakMap,Y6=new WeakMap;var VJ=function(W,G,X,Y,J){if(Y==="m")throw TypeError("Private method is not writable");if(Y==="a"&&!J)throw TypeError("Private accessor was defined without a setter");if(typeof G==="function"?W!==G||!J:!G.has(W))throw TypeError("Cannot write private member to an object whose class did not declare it");return Y==="a"?J.call(W,X):J?J.value=X:G.set(W,X),X},v5=function(W,G,X,Y){if(X==="a"&&!Y)throw TypeError("Private accessor was defined without a getter");if(typeof G==="function"?W!==G||!Y:!G.has(W))throw TypeError("Cannot read private member from an object whose class did not declare it");return X==="m"?Y:X==="a"?Y.call(W):Y?Y.value:G.get(W)},SU,bG,g5;class qW extends EU{constructor(W,G){super("CTR",W,qW);if(SU.set(this,void 0),bG.set(this,void 0),g5.set(this,void 0),VJ(this,g5,new Uint8Array(16),"f"),v5(this,g5,"f").fill(0),VJ(this,SU,v5(this,g5,"f"),"f"),VJ(this,bG,16,"f"),G==null)G=1;if(typeof G==="number")this.setCounterValue(G);else this.setCounterBytes(G)}get counter(){return new Uint8Array(v5(this,g5,"f"))}setCounterValue(W){if(!Number.isInteger(W)||W<0||W>Number.MAX_SAFE_INTEGER)throw TypeError("invalid counter initial integer value");for(let G=15;G>=0;--G)v5(this,g5,"f")[G]=W%256,W=Math.floor(W/256)}setCounterBytes(W){if(W.length!==16)throw TypeError("invalid counter initial Uint8Array value length");v5(this,g5,"f").set(W)}increment(){for(let W=15;W>=0;W--)if(v5(this,g5,"f")[W]===255)v5(this,g5,"f")[W]=0;else{v5(this,g5,"f")[W]++;break}}encrypt(W){var G,X;let Y=new Uint8Array(W);for(let J=0;J<Y.length;J++){if(v5(this,bG,"f")===16)VJ(this,SU,this.aes.encrypt(v5(this,g5,"f")),"f"),VJ(this,bG,0,"f"),this.increment();Y[J]^=v5(this,SU,"f")[VJ(this,bG,(X=v5(this,bG,"f"),G=X++,X),"f"),G]}return Y}decrypt(W){return this.encrypt(W)}}SU=new WeakMap,bG=new WeakMap,g5=new WeakMap;function GD(W){if(W.length<16)throw TypeError("PKCS#7 invalid length");let G=W[W.length-1];if(G>16)throw TypeError("PKCS#7 padding byte out of range");let X=W.length-G;for(let Y=0;Y<G;Y++)if(W[X+Y]!==G)throw TypeError("PKCS#7 invalid padding byte");return new Uint8Array(W.subarray(0,X))}function XD(W){if(typeof W==="string"&&!W.startsWith("0x"))W="0x"+W;return U7(W)}function UJ(W,G){W=String(W);while(W.length<G)W="0"+W;return W}function mG(W){if(typeof W==="string")return U9(W,"NFKC");return U7(W)}function T8(W,G){let X=G.match(/^([a-z0-9$_.-]*)(:([a-z]+))?(!)?$/i);s(X!=null,"invalid path","path",G);let Y=X[1],J=X[3],Z=X[4]==="!",V=W;for(let U of Y.toLowerCase().split(".")){if(Array.isArray(V)){if(!U.match(/^[0-9]+$/))break;V=V[parseInt(U)]}else if(typeof V==="object"){let Q=null;for(let N in V)if(N.toLowerCase()===U){Q=V[N];break}V=Q}else V=null;if(V==null)break}if(s(!Z||V!=null,"missing required value","path",Y),J&&V!=null){if(J==="int"){if(typeof V==="string"&&V.match(/^-?[0-9]+$/))return parseInt(V);else if(Number.isSafeInteger(V))return V}if(J==="number"){if(typeof V==="string"&&V.match(/^-?[0-9.]*$/))return parseFloat(V)}if(J==="data"){if(typeof V==="string")return XD(V)}if(J==="array"&&Array.isArray(V))return V;if(J===typeof V)return V;s(!1,`wrong type found for ${J} `,"path",Y)}return V}var B_="m/44'/60'/0'/0/0";function VA(W){try{let G=JSON.parse(W);if((G.version!=null?parseInt(G.version):0)===3)return!0}catch(G){}return!1}function Dt(W,G,X){if(T8(W,"crypto.cipher:string")==="aes-128-ctr"){let J=T8(W,"crypto.cipherparams.iv:data!"),Z=new qW(G,J);return C0(Z.decrypt(X))}X1(!1,"unsupported cipher","UNSUPPORTED_OPERATION",{operation:"decrypt"})}function ZA(W,G){let X=E0(G),Y=T8(W,"crypto.ciphertext:data!"),J=C0(Z8(W8([X.slice(16,32),Y]))).substring(2);s(J===T8(W,"crypto.mac:string!").toLowerCase(),"incorrect password","password","[ REDACTED ]");let Z=Dt(W,X.slice(0,16),Y),V=e4(Z);if(W.address){let N=W.address.toLowerCase();if(!N.startsWith("0x"))N="0x"+N;s(y1(N)===V,"keystore address/privateKey mismatch","address",W.address)}let U={address:V,privateKey:Z};if(T8(W,"x-ethers.version:string")==="0.1"){let N=X.slice(32,64),q=T8(W,"x-ethers.mnemonicCiphertext:data!"),A=T8(W,"x-ethers.mnemonicCounter:data!"),H=new qW(N,A);U.mnemonic={path:T8(W,"x-ethers.path:string")||B_,locale:T8(W,"x-ethers.locale:string")||"en",entropy:C0(E0(H.decrypt(q)))}}return U}function E_(W){let G=T8(W,"crypto.kdf:string");if(G&&typeof G==="string"){if(G.toLowerCase()==="scrypt"){let X=T8(W,"crypto.kdfparams.salt:data!"),Y=T8(W,"crypto.kdfparams.n:int!"),J=T8(W,"crypto.kdfparams.r:int!"),Z=T8(W,"crypto.kdfparams.p:int!");s(Y>0&&(Y&Y-1)===0,"invalid kdf.N","kdf.N",Y),s(J>0&&Z>0,"invalid kdf","kdf",G);let V=T8(W,"crypto.kdfparams.dklen:int!");return s(V===32,"invalid kdf.dklen","kdf.dflen",V),{name:"scrypt",salt:X,N:Y,r:J,p:Z,dkLen:64}}else if(G.toLowerCase()==="pbkdf2"){let X=T8(W,"crypto.kdfparams.salt:data!"),Y=T8(W,"crypto.kdfparams.prf:string!"),J=Y.split("-").pop();s(J==="sha256"||J==="sha512","invalid kdf.pdf","kdf.pdf",Y);let Z=T8(W,"crypto.kdfparams.c:int!"),V=T8(W,"crypto.kdfparams.dklen:int!");return s(V===32,"invalid kdf.dklen","kdf.dklen",V),{name:"pbkdf2",salt:X,count:Z,dkLen:V,algorithm:J}}}s(!1,"unsupported key-derivation function","kdf",G)}function YD(W,G){let X=JSON.parse(W),Y=mG(G),J=E_(X);if(J.name==="pbkdf2"){let{salt:A,count:H,dkLen:I,algorithm:w}=J,O=S5(Y,A,H,I,w);return ZA(X,O)}X1(J.name==="scrypt","cannot be reached","UNKNOWN_ERROR",{params:J});let{salt:Z,N:V,r:U,p:Q,dkLen:N}=J,q=UW(Y,Z,V,U,Q,N);return ZA(X,q)}function L_(W){return new Promise((G)=>{setTimeout(()=>{G()},W)})}async function JD(W,G,X){let Y=JSON.parse(W),J=mG(G),Z=E_(Y);if(Z.name==="pbkdf2"){if(X)X(0),await L_(0);let{salt:H,count:I,dkLen:w,algorithm:O}=Z,T=S5(J,H,I,w,O);if(X)X(1),await L_(0);return ZA(Y,T)}X1(Z.name==="scrypt","cannot be reached","UNKNOWN_ERROR",{params:Z});let{salt:V,N:U,r:Q,p:N,dkLen:q}=Z,A=await VW(J,V,U,Q,N,q,X);return ZA(Y,A)}function $_(W){let G=W.salt!=null?E0(W.salt,"options.salt"):x5(32),X=131072,Y=8,J=1;if(W.scrypt){if(W.scrypt.N)X=W.scrypt.N;if(W.scrypt.r)Y=W.scrypt.r;if(W.scrypt.p)J=W.scrypt.p}return s(typeof X==="number"&&X>0&&Number.isSafeInteger(X)&&(BigInt(X)&BigInt(X-1))===BigInt(0),"invalid scrypt N parameter","options.N",X),s(typeof Y==="number"&&Y>0&&Number.isSafeInteger(Y),"invalid scrypt r parameter","options.r",Y),s(typeof J==="number"&&J>0&&Number.isSafeInteger(J),"invalid scrypt p parameter","options.p",J),{name:"scrypt",dkLen:32,salt:G,N:X,r:Y,p:J}}function F_(W,G,X,Y){let J=E0(X.privateKey,"privateKey"),Z=Y.iv!=null?E0(Y.iv,"options.iv"):x5(16);s(Z.length===16,"invalid options.iv length","options.iv",Y.iv);let V=Y.uuid!=null?E0(Y.uuid,"options.uuid"):x5(16);s(V.length===16,"invalid options.uuid length","options.uuid",Y.iv);let U=W.slice(0,16),Q=W.slice(16,32),N=new qW(U,Z),q=E0(N.encrypt(J)),A=Z8(W8([Q,q])),H={address:X.address.substring(2).toLowerCase(),id:xH(V),version:3,Crypto:{cipher:"aes-128-ctr",cipherparams:{iv:C0(Z).substring(2)},ciphertext:C0(q).substring(2),kdf:"scrypt",kdfparams:{salt:C0(G.salt).substring(2),n:G.N,dklen:32,p:G.p,r:G.r},mac:A.substring(2)}};if(X.mnemonic){let I=Y.client!=null?Y.client:`ethers/${MH}`,w=X.mnemonic.path||B_,O=X.mnemonic.locale||"en",T=W.slice(32,64),F=E0(X.mnemonic.entropy,"account.mnemonic.entropy"),E=x5(16),g=new qW(T,E),k=E0(g.encrypt(F)),f=new Date,c="UTC--"+(f.getUTCFullYear()+"-"+UJ(f.getUTCMonth()+1,2)+"-"+UJ(f.getUTCDate(),2)+"T"+UJ(f.getUTCHours(),2)+"-"+UJ(f.getUTCMinutes(),2)+"-"+UJ(f.getUTCSeconds(),2)+".0Z")+"--"+H.address;H["x-ethers"]={client:I,gethFilename:c,path:w,locale:O,mnemonicCounter:C0(E).substring(2),mnemonicCiphertext:C0(k).substring(2),version:"0.1"}}return JSON.stringify(H)}function xU(W,G,X){if(X==null)X={};let Y=mG(G),J=$_(X),Z=UW(Y,J.salt,J.N,J.r,J.p,64);return F_(E0(Z),J,W,X)}async function kU(W,G,X){if(X==null)X={};let Y=mG(G),J=$_(X),Z=await VW(Y,J.salt,J.N,J.r,J.p,64,X.progressCallback);return F_(E0(Z),J,W,X)}var _U="m/44'/60'/0'/0/0",Ct=new Uint8Array([66,105,116,99,111,105,110,32,115,101,101,100]),HW=2147483648,Tt=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),Mt="0123456789abcdef";function UA(W,G){let X="";while(W)X=Mt[W%16]+X,W=Math.trunc(W/16);while(X.length<G*2)X="0"+X;return"0x"+X}function ZD(W){let G=E0(W),X=rY(B9(B9(G)),0,4),Y=W8([G,X]);return FH(Y)}var s7={};function S_(W,G,X,Y){let J=new Uint8Array(37);if(W&HW)X1(Y!=null,"cannot derive child of neutered node","UNSUPPORTED_OPERATION",{operation:"deriveChild"}),J.set(E0(Y),1);else J.set(E0(X));for(let V=24;V>=0;V-=8)J[33+(V>>3)]=W>>24-V&255;let Z=E0(XW("sha512",G,J));return{IL:Z.slice(0,32),IR:Z.slice(32)}}function x_(W,G){let X=G.split("/");if(s(X.length>0,"invalid path","path",G),X[0]==="m")s(W.depth===0,`cannot derive root path (i.e. path starting with "m/") for a node at non-zero depth ${W.depth}`,"path",G),X.shift();let Y=W;for(let J=0;J<X.length;J++){let Z=X[J];if(Z.match(/^[0-9]+'$/)){let V=parseInt(Z.substring(0,Z.length-1));s(V<HW,"invalid path index",`path[${J}]`,Z),Y=Y.deriveChild(HW+V)}else if(Z.match(/^[0-9]+$/)){let V=parseInt(Z);s(V<HW,"invalid path index",`path[${J}]`,Z),Y=Y.deriveChild(V)}else s(!1,"invalid path component",`path[${J}]`,Z)}return Y}class N9 extends hG{publicKey;fingerprint;parentFingerprint;mnemonic;chainCode;path;index;depth;constructor(W,G,X,Y,J,Z,V,U,Q){super(G,Q);o4(W,s7,"HDNodeWallet"),q8(this,{publicKey:G.compressedPublicKey});let N=rY(YW(B9(this.publicKey)),0,4);q8(this,{parentFingerprint:X,fingerprint:N,chainCode:Y,path:J,index:Z,depth:V}),q8(this,{mnemonic:U})}connect(W){return new N9(s7,this.signingKey,this.parentFingerprint,this.chainCode,this.path,this.index,this.depth,this.mnemonic,W)}#W(){let W={address:this.address,privateKey:this.privateKey},G=this.mnemonic;if(this.path&&G&&G.wordlist.locale==="en"&&G.password==="")W.mnemonic={path:this.path,locale:"en",entropy:G.entropy};return W}async encrypt(W,G){return await kU(this.#W(),W,{progressCallback:G})}encryptSync(W){return xU(this.#W(),W)}get extendedKey(){return X1(this.depth<256,"Depth too deep","UNSUPPORTED_OPERATION",{operation:"extendedKey"}),ZD(W8(["0x0488ADE4",UA(this.depth,1),this.parentFingerprint,UA(this.index,4),this.chainCode,W8(["0x00",this.privateKey])]))}hasPath(){return this.path!=null}neuter(){return new fG(s7,this.address,this.publicKey,this.parentFingerprint,this.chainCode,this.path,this.index,this.depth,this.provider)}deriveChild(W){let G=a8(W,"index");s(G<=4294967295,"invalid index","index",G);let X=this.path;if(X){if(X+="/"+(G&~HW),G&HW)X+="'"}let{IR:Y,IL:J}=S_(G,this.chainCode,this.publicKey,this.privateKey),Z=new n8(Q7((sY(J)+BigInt(this.privateKey))%Tt,32));return new N9(s7,Z,this.fingerprint,C0(Y),X,G,this.depth+1,this.mnemonic,this.provider)}derivePath(W){return x_(this,W)}static#G(W,G){s(i7(W),"invalid seed","seed","[REDACTED]");let X=E0(W,"seed");s(X.length>=16&&X.length<=64,"invalid seed","seed","[REDACTED]");let Y=E0(XW("sha512",Ct,X)),J=new n8(C0(Y.slice(0,32)));return new N9(s7,J,"0x00000000",C0(Y.slice(32)),"m",0,0,G,null)}static fromExtendedKey(W){let G=H8(SH(W));s(G.length===82||ZD(G.slice(0,78))===W,"invalid extended key","extendedKey","[ REDACTED ]");let X=G[4],Y=C0(G.slice(5,9)),J=parseInt(C0(G.slice(9,13)).substring(2),16),Z=C0(G.slice(13,45)),V=G.slice(45,78);switch(C0(G.slice(0,4))){case"0x0488b21e":case"0x043587cf":{let U=C0(V);return new fG(s7,e4(U),U,Y,Z,null,J,X,null)}case"0x0488ade4":case"0x04358394 ":if(V[0]!==0)break;return new N9(s7,new n8(V.slice(1)),Y,Z,null,J,X,null,null)}s(!1,"invalid extended key prefix","extendedKey","[ REDACTED ]")}static createRandom(W,G,X){if(W==null)W="";if(G==null)G=_U;if(X==null)X=G6.wordlist();let Y=X6.fromEntropy(x5(16),W,X);return N9.#G(Y.computeSeed(),Y).derivePath(G)}static fromMnemonic(W,G){if(!G)G=_U;return N9.#G(W.computeSeed(),W).derivePath(G)}static fromPhrase(W,G,X,Y){if(G==null)G="";if(X==null)X=_U;if(Y==null)Y=G6.wordlist();let J=X6.fromPhrase(W,G,Y);return N9.#G(J.computeSeed(),J).derivePath(X)}static fromSeed(W){return N9.#G(W,null)}}class fG extends BU{publicKey;fingerprint;parentFingerprint;chainCode;path;index;depth;constructor(W,G,X,Y,J,Z,V,U,Q){super(G,Q);o4(W,s7,"HDNodeVoidWallet"),q8(this,{publicKey:X});let N=rY(YW(B9(X)),0,4);q8(this,{publicKey:X,fingerprint:N,parentFingerprint:Y,chainCode:J,path:Z,index:V,depth:U})}connect(W){return new fG(s7,this.address,this.publicKey,this.parentFingerprint,this.chainCode,this.path,this.index,this.depth,W)}get extendedKey(){return X1(this.depth<256,"Depth too deep","UNSUPPORTED_OPERATION",{operation:"extendedKey"}),ZD(W8(["0x0488B21E",UA(this.depth,1),this.parentFingerprint,UA(this.index,4),this.chainCode,this.publicKey]))}hasPath(){return this.path!=null}deriveChild(W){let G=a8(W,"index");s(G<=4294967295,"invalid index","index",G);let X=this.path;if(X){if(X+="/"+(G&~HW),G&HW)X+="'"}let{IR:Y,IL:J}=S_(G,this.chainCode,this.publicKey,null),Z=n8.addPoints(J,this.publicKey,!0),V=e4(Z);return new fG(s7,V,Z,this.fingerprint,C0(Y),X,G,this.depth+1,this.provider)}derivePath(W){return x_(this,W)}}function QA(W){try{if(JSON.parse(W).encseed)return!0}catch(G){}return!1}function NA(W,G){let X=JSON.parse(W),Y=mG(G),J=y1(T8(X,"ethaddr:string!")),Z=XD(T8(X,"encseed:string!"));s(Z&&Z.length%16===0,"invalid encseed","json",W);let V=E0(S5(Y,Y,2000,32,"sha256")).slice(0,16),U=Z.slice(0,16),Q=Z.slice(16),N=new FU(V,U),q=GD(E0(N.decrypt(Q))),A="";for(let H=0;H<q.length;H++)A+=String.fromCharCode(q[H]);return{address:J,privateKey:W6(A)}}function k_(W){return new Promise((G)=>{setTimeout(()=>{G()},W)})}class J6 extends hG{constructor(W,G){if(typeof W==="string"&&!W.startsWith("0x"))W="0x"+W;let X=typeof W==="string"?new n8(W):W;super(X,G)}connect(W){return new J6(this.signingKey,W)}async encrypt(W,G){let X={address:this.address,privateKey:this.privateKey};return await kU(X,W,{progressCallback:G})}encryptSync(W){let G={address:this.address,privateKey:this.privateKey};return xU(G,W)}static#W(W){if(s(W,"invalid JSON wallet","json","[ REDACTED ]"),"mnemonic"in W&&W.mnemonic&&W.mnemonic.locale==="en"){let X=X6.fromEntropy(W.mnemonic.entropy),Y=N9.fromMnemonic(X,W.mnemonic.path);if(Y.address===W.address&&Y.privateKey===W.privateKey)return Y;console.log("WARNING: JSON mismatch address/privateKey != mnemonic; fallback onto private key")}let G=new J6(W.privateKey);return s(G.address===W.address,"address/privateKey mismatch","json","[ REDACTED ]"),G}static async fromEncryptedJson(W,G,X){let Y=null;if(VA(W))Y=await JD(W,G,X);else if(QA(W)){if(X)X(0),await k_(0);if(Y=NA(W,G),X)X(1),await k_(0)}return J6.#W(Y)}static fromEncryptedJsonSync(W,G){let X=null;if(VA(W))X=YD(W,G);else if(QA(W))X=NA(W,G);else s(!1,"invalid JSON wallet","json","[ REDACTED ]");return J6.#W(X)}static createRandom(W){let G=N9.createRandom();if(W)return G.connect(W);return G}static fromPhrase(W,G){let X=N9.fromPhrase(W);if(G)return X.connect(G);return X}}var qA=(W)=>{let G=(X)=>X&&typeof X==="object"&&!Array.isArray(X)?Object.keys(X).sort().reduce((Y,J)=>(Y[J]=G(X[J]),Y),{}):Array.isArray(X)?X.map(G):X;return JSON.stringify(G(W))},Lt=(W,G)=>{try{return y1(PU(U9(qA(W)),G))}catch{return null}},UD=(W)=>{if(!W?.signature||!W?.originEthAddress||!W?.originUser)return{ok:!1,reason:"missing-fields"};let G;try{if(G=y1(W.originEthAddress),y1(W.originUser)!==G)return{ok:!1,reason:"address-mismatch"}}catch{return{ok:!1,reason:"invalid-address"}}let{signature:X,originEthAddress:Y,...J}=W;try{let Z=PU(U9(qA(J)),X);if(y1(Z)!==G)return{ok:!1,reason:"invalid-signature"};let{originUser:V,...U}=J;return{ok:!0,normalizedOriginEthAddress:G,payload:U}}catch(Z){return{ok:!1,reason:"verify-error",error:Z}}},__=({constitution:W=[],customRoles:G=null,getNode:X})=>{let Y=W.map((E)=>{try{return y1(E)}catch{return null}}).filter(Boolean),J=G??QD,Z=(E,g)=>ND(J,E,g),V=new Map,U=(E,g)=>{if(V.size>4096)V.clear();let k=g+JSON.stringify(E);if(!V.has(k))V.set(k,Lt(E,g));return V.get(k)},Q=(E)=>E?.owner??E?._meta?.owner,N=(E)=>typeof E==="string"&&E.startsWith("user:"),q=(E,g,k)=>E===g||["write","delete"].includes(k?.[E]),A=(E,g,k)=>E===g||k?.[E]==="delete",H=(E,g)=>E.physical-g.physical||E.logical-g.logical,I=({type:E,id:g,sourceId:k,targetId:f,value:l,timestamp:c,originUser:d})=>k?{type:E,sourceId:k,targetId:f,timestamp:c,originUser:d}:{type:E,id:g,value:l,timestamp:c,originUser:d},w=(E)=>{if(Y.includes(E))return"superadmin";let g=X(`user:${E}`)?.value;if(!g?.role)return"guest";return g.expiresAt&&new Date(g.expiresAt).getTime()<Date.now()?"guest":g.role},O=(E,g)=>!!E?.sig&&Y.includes(E.author)&&U({type:"upsert",id:g,value:E.value,timestamp:E.ts,originUser:E.author},E.sig)===E.author,T=(E)=>E?.meta?.role??(E?.meta&&{...E.meta,ts:E.meta.ts??E.timestamp}),F=(E,g,k)=>[E,T(g)].filter((f)=>O(f,k)).sort((f,l)=>H(l.ts,f.ts))[0];return{op(E,g){if(!E?.signature)return!1;let k=U(I(E),E.signature);if(!k||k!==E.originUser)return!1;let f=E.sourceId??E.id,l=E.type==="remove"?"delete":E.sourceId?"link":"write";if(N(f)){if(Y.includes(k))return!0;if(l!=="write"||k!==f.slice(5))return!1;if(g&&!Z(w(k),"write"))return!1;let{role:h="guest",expiresAt:W0=null}=F(E.receipt,g,f)?.value??{},H0=E.value??{};return H0.role===h&&(H0.expiresAt??null)===W0}if(!Z(w(k),l))return!1;let c=Q(g?.value);if(c)return(l==="delete"?A:q)(k,c,g.value.collaborators);let d=Q(E.value);return!d||k===d},opOf(E,g){let k=g.meta??{};return{type:"upsert",id:E,value:k.value??g.value,timestamp:k.ts??g.timestamp,originUser:k.author,originEthAddress:k.author,signature:k.sig,...k.role&&{receipt:k.role}}},receipt(E,g,k){if(!E?.signature)return null;let f=U(I(E),E.signature),l={author:f,sig:E.signature};if(H(E.timestamp,k.timestamp)!==0)l.ts=E.timestamp;if(N(E.id)){if(l.value=E.value,!Y.includes(f)){let c=F(E.receipt,g,E.id);if(c)l.role=c}}return l}}};function y_(W,G=[]){let X=String(W??"").trim();if(!X)throw Error("sm-server: signing key required (GDB_SM_KEY)");let Y=X.includes(" ")?N9.fromPhrase(X):new J6(X),J=y1(Y.address),Z=new Set([...G,J].map((Q)=>{try{return y1(Q)}catch{return null}}).filter(Boolean));return{address:J,superAdmins:Z,canonicalize:qA,signOps:async(Q)=>{let N=[];for(let q of Q){if(q?.signature&&q?.originEthAddress&&q?.originUser){N.push(q);continue}let A={...q,originUser:J},H=await Y.signMessage(U9(qA(A)));N.push({...q,originUser:J,originEthAddress:J,signature:H})}return N},verifyOp:UD,isSuperAdmin:(Q)=>{try{return Z.has(y1(Q))}catch{return!1}}}}var QD={superadmin:{can:["assignRole","deleteAny"],inherits:["admin"]},admin:{can:["delete"],inherits:["manager"]},manager:{can:["publish"],inherits:["user"]},user:{can:["write","link","sync"],inherits:["guest"]},guest:{can:["read","sync"]}},Bt=Object.keys(QD),ND=(W,G,X,Y=new Set)=>{if(!G||!W[G]||Y.has(G))return!1;if(Y.add(G),W[G].can?.includes(X))return!0;return(W[G].inherits??[]).some((J)=>ND(W,J,X,new Set(Y)))},Et=(W)=>W==="upsert"?"write":W==="remove"?"delete":W==="link"||W==="unlink"?"link":W==="sync"||W==="deltaSync"?"sync":"unknown",VD=(W)=>`${W.slice(0,6)}...${W.slice(-4)}`,v_=({constitution:W=[],customRoles:G=null,getNode:X})=>{let Y=W.map((U)=>{try{return y1(U)}catch{return null}}).filter(Boolean),J=G??QD,Z=(U)=>{let Q=X(`user:${U}`)?.value;if(!Q?.role)return"guest";if(Q.expiresAt&&new Date(Q.expiresAt).getTime()<Date.now())return"guest";return Q.role},V=(U)=>{try{return Y.includes(y1(U??""))}catch{return!1}};return async(U)=>{let Q=[];for(let N of U){if(N?.type==="sync"){Q.push(N);continue}if(N?.type==="fullStateSync"||N?.type==="deltaSync"){if(!(N.signature&&N.originEthAddress&&N.originUser)){Q.push(N);continue}let E=UD(N);if(E.ok)Q.push(E.payload);else console.warn(`\u26A0\uFE0F SM: ${N.type} rejected: ${E.reason}`);continue}let q=UD(N);if(!q.ok){console.warn(`\u26A0\uFE0F SM: invalid signed operation: ${q.reason}`);continue}let{normalizedOriginEthAddress:A,payload:H}=q,I=Y.includes(A)?"superadmin":Z(A),w={...H,signer:A,originUser:N.originUser,originEthAddress:N.originEthAddress,signature:N.signature};if(H.type==="upsert"&&H.id===`user:${A}`&&!X(H.id)){Q.push(w);continue}let{role:O,ethAddress:T}=H.value??{};if(O==="superadmin"&&!V(T)){console.warn(`\u26A0\uFE0F SM: [POLICY] ${VD(A)} tried to assign superadmin to ${VD(String(T??""))}. Blocked.`);continue}let F=Et(H.type);if(ND(J,I,F))Q.push(w);else console.warn(`\u26A0\uFE0F SM: ${VD(A)} (role: ${I}) DENIED ${F}`)}return Q}};function g_(W,G,X,{intervalMs:Y=4000,settleMs:J=15000,customRoles:Z=null}={}){let V=new Set([...Bt,...Object.keys(Z??{})]),U=async(A,H,I=null)=>{let w=y1(A);if(!V.has(H))throw Error(`Role '${H}' is not a defined role.`);let O=`user:${w}`,T=(await W.get(O)).result?.value||{};await W.put({...T,ethAddress:w,role:H,assignedByEthAddress:G.address,expiresAt:I?new Date(I).toISOString():null,priority:!0},O)},Q=async()=>{let A=new Map;for(let H of X){let I=H.then?.assignRole;if(!I)continue;let w=[];try{({results:w=[]}=W.map({query:H.if}))}catch(O){console.error("\u274C GOVERNANCE: rule evaluation failed:",O.message);continue}for(let O of w){if(!O.id.startsWith("user:"))continue;if(G.isSuperAdmin(O.id.slice(5)))continue;if(H.offsetTimestamp&&(O.timestamp?.physical??0)>Date.now()-H.offsetTimestamp)continue;A.set(O.id,{role:I,current:O.value?.role})}}for(let[H,{role:I,current:w}]of A){if(w===I)continue;try{await U(H.slice(5),I),console.info(`\uD83D\uDCDC GOVERNANCE: ${H.slice(5)} '${w}' -> '${I}'`)}catch(O){console.error("\u274C GOVERNANCE: assignRole failed:",O.message)}}},N=null,q=setTimeout(()=>{N=setInterval(Q,Y),console.info(`\uD83D\uDCDC GOVERNANCE ENGINE: active \u2014 ${X.length} rule(s), every ${Y} ms.`)},J);return{assignRole:U,stop:()=>{if(clearTimeout(q),N)clearInterval(N)}}}var HD=(W)=>W&&typeof W==="object"?structuredClone(W):W,qD=(W,G=16)=>{let X=null,Y=null;return(...J)=>{if(Y??=Promise.withResolvers(),X!==null)clearTimeout(X);return X=setTimeout(async()=>{X=null;try{Y.resolve(await W(...J))}catch(Z){Y.reject(Z)}finally{Y=null}},G),Y.promise}},xt=(W)=>{let G=!1;return()=>{if(G)return;G=!0,setImmediate(()=>{G=!1,W()})}};function kt(W=1000){let G=[];return{add(X){if(X?.timestamp){if(G.push(X),G.length>W)G.splice(0,G.length-W)}},getOldest:()=>G[0]??null,getDelta:(X,Y)=>X?G.filter((J)=>Y(J.timestamp,X)>0):[...G],sign({type:X,id:Y,sourceId:J,timestamp:Z,originUser:V,originEthAddress:U,signature:Q}){let N=G.find((q)=>q.type===X&&(q.id??q.sourceId)===(Y??J)&&q.timestamp?.physical===Z?.physical&&q.timestamp?.logical===Z?.logical);if(N&&Q)Object.assign(N,{originUser:V,originEthAddress:U,signature:Q})},clear(){G=[]},entries:()=>[...G],setEntries(X=[]){if(G=Array.isArray(X)?[...X]:[],G.length>W)G.splice(0,G.length-W)}}}function _t(){let W={nodes:{}};return{get nodes(){return W.nodes},set nodes(G){W.nodes=G??{}},upsert(G,X,Y){let J=W.nodes[G];W.nodes[G]={id:G,value:HD(X),edges:J?.edges?[...J.edges]:[],timestamp:Y,...J?.meta&&{meta:J.meta}}},get:(G)=>W.nodes[G]??null,link(G,X,Y){let J=W.nodes[G],Z=W.nodes[X];if(J&&Z&&!J.edges.includes(X))W.nodes[G]={...J,edges:[...J.edges,X],timestamp:Y}},unlink(G,X,Y){let J=W.nodes[G];if(J?.edges.includes(X))W.nodes[G]={...J,edges:J.edges.filter((Z)=>Z!==X),timestamp:Y}},getAllNodes:()=>Object.values(W.nodes),serialize:()=>WX.deflate(hU(W.nodes)),deserialize(G){let X=G instanceof Uint8Array?G:new Uint8Array(G);W.nodes=AW(WX.inflate(X))}}}function yt(W,G){let X=St(W);if(X&&X!==".")Ft(X,{recursive:!0});let Y=new $t(W);Y.exec("PRAGMA journal_mode = WAL"),Y.exec("PRAGMA synchronous = NORMAL"),Y.exec(`
252
252
  CREATE TABLE IF NOT EXISTS kv (
253
253
  key TEXT PRIMARY KEY,
254
254
  value BLOB NOT NULL